After executing performance testing, several nodes in Web Logic cluster were stuck with same reason:
"[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)
There is total 126 threads blocked on the same
waiting for lock java.util.WeakHashMap@8632059
I really wonder, what could cause this strange behaviour, I was expecting troubles in database performance or lack of jdbc connections, but not logging issues. If so, is it possible to disable this logging somehow?
Other node also had
"[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)
with 15 blocked threads. The underlying method in all cases does small jpa query, selecting user by login from db due to invalidated cache.
synchronised
blocks. If you turn the tracing off it should never hit those blocks in the first place. – Steve C