技术文章 - CS107741

由于 Windchill 中的 log4j 死锁,方法服务器无响应

已修改: 20-Mar-2024   


注意:本文已使用机器翻译软件翻译,以方便非英语客户阅读。但翻译内容可能包含语法错误或不准确之处。请注意, PTC对本文所含信息的翻译准确性及使用后果不承担任何责任。请在 此处 查看本文的英文原始版本以便参考。有关机器翻译的更多详情,请单击 此处
感谢您告诉我们。我们将尽快审阅此译文。

适用于

  • 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