ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【WebOTX Application Server】配備解除した際にWEB-INF/lib内のJARファイルが削除されない(OTX-FAQ-000689)

質問内容

Webアプリケーションの配備解除を実行し、配備解除が正常に終了したが、以下のディレクトリにJARファイルが残ったままです。

<WebOTXインストールディレクトリ>\domains\<ドメイン名>\applications\<アプリケーション名>\WEB-INF\lib

※ V8 の場合は、以下のディレクトリになります。
<WebOTXインストールディレクトリ>\domains\<ドメイン名>\applications\j2ee-modules\<アプリケーション名>\WEB-INF\lib

上記JARファイルをエクスプローラから削除しようとすると、JavaVMが使用しているというメッセージが表示され、削除できません。
WebOTXのサービスを停止すると、削除できました。

原因および回避方法について、教えてください。

回答内容

JAR ファイルが WebOTX のプロセスによってロックされています。
このような状況になった場合は、WebOTX を停止してから、該当の JAR ファイルを削除する必要があります。


JAR ファイルがロックされる原因は、次の 2 つがあります。

原因 1. 配備時に JSP のコンパイルを行うよう指定した場合

配備時に「JSP コンパイル」にチェックを入れる (または --precompilejsp=true を指定する) と、配備時に JSP のコンパイルが行われます。
Windows では、JSP が WEB-INF/lib 内の JAR を参照している場合、配備時に JSP コンパイルを行うと JAR ファイルがロックされます。

回避するには、配備時の JSP コンパイルを行わないか、配備時に JSP コンパイルを行う場合は、配備解除や再配備を行う前に WebOTX を再起動する必要があります。(プロセスを終了させることでロックは解除されます)


原因 2. JAR ファイル内のリソース (*.properties, *.xml など) にアクセスしている場合

アプリケーションや利用しているライブラリが WEB-INF/lib 内の JAR ファイルに含まれるリソースファイルにアクセスしている場合、ファイルのクローズを正しく行っていないと JAR ファイルがロックされることがあります。
また、JAR ファイル内のリソースを指す URL に対して openStream メソッドで InputStream をオープンすると、JarURLConnection によって JAR ファイルがオープンされたままキャッシュされるため、InputStream をクローズしても JAR ファイルがロックされたままになります。

これは、V9.4のマニュアルの以下の箇所に説明があります。
WebOTX V9.4 マニュアル
[ 注意制限事項 > 3. Webコンテナ > 3.1. Webコンテナ 注意事項 > 3.1.4. Webアプリケーションの運用/実行 > 配備解除後にアプリケーションディレクトリ配下のJARファイルが残る場合 ]


回避するには、アプリケーション内でリソースファイルのクローズ漏れを無くす必要があります。

また、該当箇所が既存のライブラリなどで変更ができない場合や JAR ファイルのキャッシュによってオープンされたままになる場合は、Web アプリケーションに antiJARLocking=true を指定する方法があります。
antiJARLocking の設定方法を以下に示します。

[antiJARLocking の設定方法]
方法 1. nec-web.xml に記述する方法
<nec-web-app>
<property name="antiJARLocking" value="true" />
</nec-web-app>
(WAR 内のファイルを編集して、配備し直してください)


方法 2. 運用管理コマンドにより設定する方法
- V9 の場合
otxadmin> set server.applications.web-module.<Webアプリケーション名>.module.<Webアプリケーション名>.engine.web.web-module-config.property.antiJARLocking=true
(ドメイン再起動が必要です)

- V8 の場合
otxadmin> set server.applications.web-module.<Webアプリケーション名>.property.antiJARLocking=true
(ドメイン再起動が必要です)


antiJARLocking の設定方法の詳細については、マニュアルの下記の箇所をご参照ください。

WebOTX V9.4~V9.5 マニュアル
[ マイグレーションガイド > 2. マイグレーションアシスタントを利用しないマイグレーションガイド > 2.5. Tomcat設定項目 > 2.5.1. Tomcat設定項目との対応 > コンテキスト(Standard)> antiJARLocking ]

WebOTX V8.4~V9.3 マニュアル
[ リファレンス集 ドメイン構成・環境移行編 > 2. 他APサーバ(Tomcat)からWebOTXへの移行ガイド > 2.5. Tomcat設定項目 > 2.5.1. Tomcat設定項目との対応 > コンテキスト(Standard)> antiJARLocking ]

WebOTX V8.3 マニュアル
[ リファレンス集 ドメイン構成・環境移行編 > 2. TomcatからWebOTXへの移行ガイド > 2.5. Tomcat設定項目 > 2.5.1. Tomcat設定項目との対応 > コンテキスト(Standard)> antiJARLocking ]

WebOTX V8.1~V8.2 マニュアル
[ 運用編 > 7.運用ガイド > TomcatからWebOTXへの移行ガイド > 4 Tomcat設定項目 > 4.1. Tomcat設定項目との対応 > コンテキスト(Standard)> antiJARLocking ]"


antiJARLocking の設定を行っても JAR ファイルのロックを回避できない場合は、OTX-FAQ-000839 をご参照ください。

【対象製品】Application Server
【確認済みのバージョン】V8~V9
【確認済みのエディション】すべて
【確認済みの対象OS】Windows
【確認済みのJavaバージョン】すべて
【コンポーネント】Webコンテナ
【カテゴリー】トラブルシューティング

製品名カテゴリ

WebOTX
WebOTX Application Server

  • コンテンツID: 3150102999
  • 公開日: 2012年02月07日
  • 最終更新日:2019年10月29日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。