アーティクル - CS107741
Windchill の log4j デッドロックが原因でメソッドサーバーが応答しない
修正日: 20-Mar-2024
適用対象
- Windchill PDMLink 10.0 to 10.1 M030
説明
- log4j と System.out.println() または java.io.PrintStream.println() の間のデッドロックが原因でメソッド サーバーが応答しません
- 例えば:
- 次のメソッド コンテキストは、java.io.PrintStream.println() を使用して例外情報をログに出力するカスタマイズを利用しています。
"WfPropagationQueue_20746290394.PoolQueueThread-750" Id=2120918 daemon prio=5 BLOCKED on lock=wt.log4j.jmx.LogPrintStream@25afedfc, lock owned by "WfUserWorkQueue_20746290394.PoolQueueThread-245" Id=2120986, Blocked (cnt): 4; Waited (cnt): 2, CPU nanos: 25447542; User nanos: 20000000; Bytes allocated: 4887136, Method context: 4eijee22;lt0u7pe5;2239;uyck1s;31552511; DB session: 503, % of 1 CPU used by context: 3.446393658632892E-5 (9653302/28009864676426); Bytes allocated by context: 1380288, at [email protected]/java.io.PrintStream.println(PrintStream.java:881),- Windchill コード wt.util.WTException.printStackTrace() が wt.log4j.jmx.LogPrintStream をロックしているが、カスタマイズ例外でブロックされているため、java.io.PrintStream.println() はログに書き込むことができません。
"WfUserWorkQueue_20746290394.PoolQueueThread-245" Id=2120986 daemon prio=5 BLOCKED on lock=wt.vc.VersionControlException@568ecce2, lock owned by "WfPropagationQueue_20746290394.PoolQueueThread-750" Id=2120918, Blocked (cnt): 6; Waited (cnt): 0, CPU nanos: 715498625; User nanos: 370000000; Bytes allocated: 2928576, Method context: 4eijee22;lt0u7pe5;2239;uyck1s;31552508; DB session: 779, % of 1 CPU used by context: 0.002553862567626531 (715333585/28009869993310); Bytes allocated by context: 2923936, at [email protected]/java.lang.Throwable.getCause(Throwable.java:420), at app//wt.util.WTException.getNestedThrowable(WTException.java:96), at app//wt.util.WTException.printStackTrace(WTException.java:490), at app//wt.util.WTException.printStackTrace(WTException.java:499), - locked wt.log4j.jmx.LogPrintStream@25afedfc,
最新バージョンはこちらを参照ください CS107741