コンフィギュレーション・プロパティの概?/H1>

wrapper.check.deadlock プロパティ

こ?プロパティは、他?プロパティとの?合わせで?

?ドロ?したスレ?につ? JVMをどのようにモニター?監視)するかを設定するために使われます? これは、何とか回避策がある場合には? 難しいような潜在?致命?問題を検知して回避するのに、とても役に立ちます?

スレ?の?ドロ?・チェ?は、少なくと?avaバ?ジョン1.5の利用して?ことが?です? JVM?はチェ?を無視します?

?ドロ?のチェ?の処??、わりと高?ですが? 全てのスレ?を??ロ?してスナップショ?をとります?で? こ?プロパティは?ォルトで「FALSE」になって?す?

設定例:(デ?ロ?・チェ??OFF??/i>
wrapper.check.deadlock=FALSE

設定例?/b>

プロパティの詳細につ?下記をご覧??ますが? 次のシンプルな例では、デ?ロ?の場?ログ化するよ?Wrapperを設定してあり? 即座にJVMを?起動します?

設定例?/i>
wrapper.check.deadlock=TRUE
wrapper.check.deadlock.interval=60
wrapper.check.deadlock.action=RESTART
wrapper.check.deadlock.output=FULL

?ドロ?って??/b>

?のスレ?がリソースをロ?して?ときに? 全てのスレ?が無制限に?状態になる状態になり? ?ドロ?が起きることがあります?

?シンプルな例だと、スレ??がオブジェクトAをロ?して?状態で? オブジェクトBのロ?を試みるケースのときに? そ?間?他?スレ??がオブジェクトBをロ?した状態で オブジェクトAをロ?しよ??して?ケースです? こ?ケースでは? スレ??は、オブジェクトB?のため? オブジェクトAを決して開放されることはありません? 同時に、スレ??は、オブジェクトAが有効になる?を?て?ため? オブジェクトBを永?ロ?したままになるため? 両?も決して前に進めるはずがありません?

wrapper.check.deadlock.interval

?wrapper.check.deadlock.interval? プロパティでは? Wrapperがアプリケーションの?ドロ?を探? インターバル??間隔?周期)?コントロールを可能にします? ?で?秒毎に?回のインターバルを設定できますが? ?ォルトでは?0」(1?あたり1回?です? ??、状態が安定して?と?って?アプリケーションの場合には? こ??ドロ?・チェ?の頻度を大?下げることも良?しょ??

設定例:(60秒毎?/i>
wrapper.check.deadlock.interval=60

wrapper.check.deadlock.action

?wrapper.check.deadlock.action? プロパティでは? ?ドロ?を検知したとき?Wrapperはど?るか? Wrapperの動作につ?のコントロールを可能にします? ?ォルト?動作では、?RESTART」です?

設定例:(?起動する?/i>
wrapper.check.deadlock.action=RESTART

可能な動作?次のとおり??

  • RESTART -

    カレン?VMを停止して、新しい「起動?試み??nvocation??の再起動します?

  • SHUTDOWN -

    JVMを停止して、同様にWrapperも停止します?

  • DUMP -

    スレ?・?プを呼び出します? 当然のことながら、デ?ロ?が永続して?ため? JVMが?起動するまでずっと、デ?ロ?したス??ト(状態)が持続します? つまり?スレ?・?プもまた各インターバル??間隔?周期)ごとに呼び出されま? のでご注意く???

  • DUMP_RESTART -

    スレ?・?プを呼び出し? カレン?VMを停止して、新しい「起動?試み??nvocation??の再起動します?

  • DUMP_SHUTDOWN -

    スレ?・?プを呼び出し? JVMを停止して、同様にWrapperも停止します?

  • NONE -

    これは便利です? なぜなら?高い数値を持つトリガーなら? ?なるトリガーもトリガーされることを避けることができるので? because it will prevent any triggers with a higher number from being triggered.

wrapper.check.deadlock.output

?wrapper.check.deadlock.output? プロパティでは? ?ドロ?を検知したとき?Wrapperがログ化する情報をコントロールを可能にします? ?ォルト?力では、?FULL」です?

設定例:(完?なフルログ??/i>
wrapper.check.deadlock.output=FULL

可能な出力レベルは次のとおり??

  • FULL -

    JVM?でWrapperManagerクラスが? ?ドロ?で呼び出されたスレ?の完?なスタ?・トレース??記?の軌跡?を含? レポ?トを出力します?

    「FULL?フル??の出力例?/i>
    INFO   | jvm 1    | WrapperManager Error: Found 2 deadlocked threads!
    INFO   | jvm 1    | WrapperManager Error: =============================
    INFO   | jvm 1    | WrapperManager Error: "Locker-2" tid=18
    INFO   | jvm 1    | WrapperManager Error:   java.lang.Thread.State: BLOCKED
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock.lockSecond(DeadLock.java:64)
    INFO   | jvm 1    | WrapperManager Error:       - waiting on <0x000000002fcac6db> (a java.lang.Object) owned by "Locker-1" tid=17
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock.lockFirst(DeadLock.java:83)
    INFO   | jvm 1    | WrapperManager Error:       - locked <0x0000000029c56c60> (a java.lang.Object)
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock.access$100(DeadLock.java:22)
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock$1.run(DeadLock.java:42)
    INFO   | jvm 1    | WrapperManager Error:
    INFO   | jvm 1    | WrapperManager Error: "Locker-1" tid=17
    INFO   | jvm 1    | WrapperManager Error:   java.lang.Thread.State: BLOCKED
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock.lockSecond(DeadLock.java:64)
    INFO   | jvm 1    | WrapperManager Error:       - waiting on <0x0000000029c56c60> (a java.lang.Object) owned by "Locker-2" tid=18
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock.lockFirst(DeadLock.java:83)
    INFO   | jvm 1    | WrapperManager Error:       - locked <0x000000002fcac6db> (a java.lang.Object)
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock.access$100(DeadLock.java:22)
    INFO   | jvm 1    | WrapperManager Error:     at org.tanukisoftware.wrapper.test.DeadLock$1.run(DeadLock.java:42)
    INFO   | jvm 1    | WrapperManager Error:
    INFO   | jvm 1    | WrapperManager Error: =============================
    STATUS | wrapper  | A Thread Deadlock was detected in the JVM.  Restarting JVM.
  • SIMPLE -

    JVM?でWrapperManagerクラスが? ?ドロ?で呼び出されたスレ??ブジェクト?簡単な概要だけを含? レポ?トを出力します? 多くの場合?特によく知られた問題に関しては十?です?

    「SIMPLE?シンプル??の出力?/i>
    INFO   | jvm 1    | WrapperManager Error: Found 2 deadlocked threads!
    INFO   | jvm 1    | WrapperManager Error: =============================
    INFO   | jvm 1    | WrapperManager Error: "Locker-2" BLOCKED waiting on a java.lang.Object owned by "Locker-1"
    INFO   | jvm 1    | WrapperManager Error: "Locker-1" BLOCKED waiting on a java.lang.Object owned by "Locker-2"
    INFO   | jvm 1    | WrapperManager Error: =============================
    STATUS | wrapper  | A Thread Deadlock was detected in the JVM.  Restarting JVM.
  • NONE -

    JVM?でWrapperManagerクラスが? 全ての出力を抑えます? これはシス?製品?利用に向いて?す? 問題?把握しており? たくさんのログ??を望まな??ある??、保持する?がな??ケースに適して?す? そ?他?選択として、Wrapperプロセスは? トリガーされ?a href="#action">アクション? 発生した理由を提供するために? 常にシングル・エントリをログ化して?ます?

    「NONE?なし)?の出力?/i>
    STATUS | wrapper  | A Thread Deadlock was detected in the JVM.  Restarting JVM.