7

私は、Tomcat 6.0.20 を開発と運用に使用するプロジェクトに取り組んでいます。

server.xml で Context.antiResourceLocking を false に設定する必要があるホット デプロイメントに関連する問題に遭遇しました。antiResourceLocking と antiJARLocking についていくつか質問がありました。http://tomcat.apache.org/tomcat-6.0-doc/config/context.htmlのリファレンスを確認しました。

私が理解できないのは、JAR がロックされたり、リソースがロックされたりするとは、正確には何を意味するのかということです。私がこれまでに読んだことは、ロックの問題は通常、ファイル/jar をロックしているプロセスが原因で失敗するアプリケーションをアンデプロイするときに発生するということです。この問題についてもっと読むことができる場所を誰か教えてもらえますか?

私の質問は次のとおりです。1) antiJARLocking および/または antiResourceLocking を false に設定すると、どのような問題が発生する可能性がありますか? 誰かが例を挙げてもらえますか? 2) 実稼働環境でこれらの属性を false に設定するのは悪い習慣ですか? 2) Linux ボックスでは、Windows ボックスで発生する可能性があるほど頻繁にロックが発生しないというのは本当ですか?

あなたの助けに感謝。

ありがとうございました。

ゴビンド N.

4

2 に答える 2

5

これらに対する私の答えは次のとおりです。

1) 私が知る限り、antiJARLocking および/または antiResourceLocking を false に設定すると、Windows でのみ問題が発生する可能性があります (ただし、Tomcat 開発者が Linux にも影響すると主張していたことを漠然と覚えていますが、それは無視しています。それを証明する例や詳細な説明はありません)。

2) Tomcat が Windows で実行されている場合、これらを false に設定するのは悪い習慣です。

2番目の2)!! 私は 10 年以上にわたり、複数の Linux ディストリビューションとバージョンで Tomcat を実行してきました。これらの属性のいずれかを true に設定していないために、jar のロックまたはリソースのロックの問題が発生したことは一度もありません。私の知る限り、それは起こりませんが、使用しているファイルシステムの実装に依存する可能性があり、私は常に EXT2、EXT3、または EXT4 のいずれかを使用していました。

これについてまだ質問がある場合は、Tomcat-user メーリング リストで質問してください。

乾杯!

Jason Brittain 共著者、Tomcat: The Definitive Guide (O'Reilly)

于 2010-09-01T19:51:51.413 に答える
4

1) webapp を自動的にビルドして展開するために svn を中心にシステムを構築しました。展開は Tomcat ant タスクを介して行われ、antiJARLocking および/または antiResourceLocking を false に設定すると、Tomcat が一部の jar を削除できなかったため、アプリケーションは適切に展開解除されませんでした。および log4j.properties 構成ファイルであるため、デプロイは失敗しました。したがって、これらのプロパティを true に設定する必要があり、Tomcat は一時ディレクトリに webapp のコピーを作成しました。これにより展開が遅くなり、再展開のたびに一時ディレクトリのサイズが大きくなるため、アプリの古い展開を一時ディレクトリから削除する手順を作成する必要がありました。Tomcat はアプリを一時ディレクトリに再デプロイするため、いつでも一時ディレクトリからデプロイを削除しても安全です。

2) Tomcat のドキュメントから、jar ロックまたはリソース ロックの問題は Windows でのみ発生することがわかりました。頻繁に再デプロイする必要がないため、本番環境ではこれらのプロパティを true に設定しません。Java では、本番環境で再デプロイした後にサーバーを再起動することを常にお勧めします (OutOfMemoryError は常に暗闇の中に潜んでいます。あなた自身のコードが漏れていなくても)。もう 1 つの小さな問題は、アプリが一時ディレクトリにデプロイされていることです。webapps ディレクトリ内の jsp または別のファイルを変更すると、その変更を一時ディレクトリにもコピーしない限り再デプロイされません。

于 2010-09-28T08:39:00.340 に答える