WebLogic停留在内部日志记录上

时间:2017-02-07 10:47:25

标签: java-ee weblogic

执行性能测试后,Web Logic集群中的几个节点出现了同样的原因:

"[ACTIVE] ExecuteThread: '201' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock java.util.WeakHashMap@8632059 BLOCKED

            weblogic.logging.WLLogger.normalizeLogRecord(WLLogger.java:60)

            weblogic.logging.WLLogger.log(WLLogger.java:37)

            weblogic.diagnostics.debug.DebugLogger.log(DebugLogger.java:231)

            weblogic.diagnostics.debug.DebugLogger.debug(DebugLogger.java:204)

            weblogic.jdbc.wrapper.JDBCWrapperImpl.trace(JDBCWrapperImpl.java:169)

            weblogic.jdbc.wrapper.ResultSet.preInvocationHandler(ResultSet.java:83)

            weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.getLong(Unknown Source)

同一

共阻止了126个主题
waiting for lock java.util.WeakHashMap@8632059

我真的很想知道,这可能会导致这种奇怪的行为,我期待数据库性能出现问题或者缺少jdbc连接,但是没有记录日志问题。如果是这样,是否可以以某种方式禁用此日志记录?

其他节点也有

"[STUCK] ExecuteThread: '206' for queue: 'weblogic.kernel.Default (self-tuning)'" waiting for lock weblogic.logging.FileStreamHandler@153405fb BLOCKED

            com.bea.logging.RotatingFileStreamHandler.publish(RotatingFileStreamHandler.java:75)

            java.util.logging.Logger.log(Logger.java:610)

            com.bea.logging.BaseLogger.log(BaseLogger.java:51)

            weblogic.logging.WLLogger.log(WLLogger.java:42)

有15个被阻止的线程。 在所有情况下,底层方法都执行小jpa查询,由于缓存无效而从db中选择用户。

1 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题。很少有线程转储表明Weblogic卡在某种内部调试日志中:

 - weblogic.diagnostics.debug.DebugLogger.log(java.util.logging.Level, java.lang.String, java.lang.Throwable) @bci=56, line=246 (Compiled frame)
 - weblogic.diagnostics.debug.DebugLogger.debug(java.lang.String) @bci=6, line=211 (Compiled frame)

可以在环境>管理控制台中配置内部调试级别。服务器> MyServer>调试。就我而言,我发现所有可能的范围都已启用。禁用调试日志记录并重新启动服务器问题后,消失了。