コンフィギュレーション・プロパティの概要 |
wrapper.check.deadlock プロパティ |
||||
このプロパティは、他のプロパティとの組み合わせで、 デッドロックしたスレッドについて JVMをどのようにモニター(監視)するかを設定するために使われます。 これは、何とか回避策がある場合には、 難しいような潜在的な致命的な問題を検知して回避するのに、とても役に立ちます。スレッドのデッドロック・チェックは、少なくともJavaバージョン1.5の利用していることが必要です。 JVMだけはチェックを無視します。 デッドロックのチェックの処理は、わりと高速ですが、 全てのスレッドを一時的にロックしてスナップショットをとりますので、 このプロパティはデフォルトで「FALSE」になっています。
設定例: プロパティの詳細について下記をご覧いただきますが、 次のシンプルな例では、デッドロックの場所をログ化するようにWrapperを設定してあり、 即座にJVMを再起動します。
デッドロックって? 複数のスレッドがリソースをロックしているときに、 全てのスレッドが無制限に待ち状態になる状態になり、 デッドロックが起きることがあります。 一番シンプルな例だと、スレッドAがオブジェクトAをロックしている状態で、 オブジェクトBのロックを試みるケースのときに、 その間、他のスレッドBがオブジェクトBをロックした状態で オブジェクトAをロックしようと待機しているケースです。 このケースでは、 スレッドAは、オブジェクトB待ちのため、 オブジェクトAを決して開放されることはありません。 同時に、スレッドBは、オブジェクトAが有効になるのを待っているため、 オブジェクトBを永久にロックしたままになるため、 両者とも決して前に進めるはずがありません。 |
wrapper.check.deadlock.interval |
||
[wrapper.check.deadlock.interval] プロパティでは、 Wrapperがアプリケーションのデッドロックを探す インターバル(一定間隔の周期)のコントロールを可能にします。 最短で1秒毎に1回のインターバルを設定できますが、 デフォルトでは「60」(1分あたり1回)です。 一般的に、状態が安定していると分かっているアプリケーションの場合には、 このデッドロック・チェックの頻度を大幅に下げることも良いでしょう。
|
wrapper.check.deadlock.action |
||
[wrapper.check.deadlock.action] プロパティでは、 デッドロックを検知したとき、Wrapperはどうするか、 Wrapperの動作についてのコントロールを可能にします。 デフォルトの動作では、「RESTART」です。
可能な動作は次のとおり:
|
wrapper.check.deadlock.output |
||||||||
[wrapper.check.deadlock.output] プロパティでは、 デッドロックを検知したとき、Wrapperがログ化する情報をコントロールを可能にします。 デフォルト出力では、「FULL」です。
可能な出力レベルは次のとおり:
|