技术文章 - 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),- java.io.PrintStream.println() 无法写入日志,因为 Windchill 代码 wt.util.WTException.printStackTrace() 已锁定 wt.log4j.jmx.LogPrintStream,但在自定义异常上被阻止
"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,
这是文章 107741 的 PDF 版本,可能已过期。最新版本 CS107741