36

属性antiJARLockingはどういう意味ですか?それを真/偽にすると、それは何の意味がありますか?

私はこの属性context.xmlをweb-applicationのファイルで見ました:

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/poll">
 <Resource name="jdbc/PollDatasource" auth="Container"
           type="javax.sql.DataSource"
 // etc etc
</context>
4

2 に答える 2

31

Tomcat 7

コンテキスト設定に関するTomcat7.0のドキュメントから:

"antiJARLocking-trueの場合、TomcatクラスローダーはURLを介してJAR内でリソースにアクセスするときにJARファイルロックを回避するための追加の対策を講じます。これはアプリケーションの起動時間に影響しますが、ファイルロックが発生する可能性のあるプラットフォームまたは構成で役立つ可能性があります。 。指定されていない場合、デフォルト値はfalseです。」

(彼らが対処しようとしている問題は…私は…ロックされたJARファイルがホットリデプロイメントのようなものが機能しなくなることだと思います。)

詳細については、ドキュメントをお読みください。

Tomcat8以降

この属性は、Tomcat8以降では属性にantiJARLocking置き換えられています。antiResourceLockingドキュメントには、この属性を設定することのいくつかの注目すべき副作用が記載されています。


参照:

  • http://stackoverflow.com/q/22480442/642706 ...この機能をオンにすると、ホットリデプロイを実行した場合にpermgen(またはJava 8以降ではメタスペース)のメモリリークが有効になる可能性があることに注意してください。
于 2012-07-23T06:02:49.743 に答える
7

Windowsは、クラスの読み込み中にファイルをロックするのが好きなので、ファイルを手動で削除したり、別のアプリケーションで開いたりすることはできません。また、戦争の展開と再展開の際にも問題が発生します。Tomcatでは、<Context antiJARLocking="true"/>これを指定すると、Windowsがjarのロックを取得できなくなります

于 2015-04-28T04:00:28.910 に答える