コンフィギュレーション・プロパティの概è¦?/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.