在我們的生產環境中,weblogic服務器掛起半個小時,看起來它有死鎖線程。但在調查線程轉儲後,3個線程被鎖定爲同一個鎖,但沒有其他線程擁有此鎖。以下是stacktrace ..怎麼可能,3個線程處於阻塞狀態,等待相同的監視器,並且沒有線程擁有該監視器
您是否對此評估有任何合理的解釋?
這裏是被阻塞的線程;
「池-1013線程-5」 PRIO = 7 TID = 600000000842be00 NID = 17280 lwp_id單= 518677等待監視器條目 [9fffffffe6aff000..9fffffffe6b00bd0] java.lang.Thread.State中: BLOCKED(上在 org.apache.log4j.Category.callAppenders(Category.java:201) 對象監視器) - 等待在 org.apache.log4j鎖定< 9ffffffde1e7ec88>(一個 org.apache.log4j.spi.RootLogger) .Category.forcedLog(Category.java:388)在 org.apache.log4j.Category.log(Category.java:853)在 org.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:173) 在 org.hibernate.jdbc.AbstractBatcher.logOpenResults(AbstractBatcher.java:426) 在 org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:210) 在org.hibernate.loader.Loader.getResultSet( Loader.java:1808)
「池-1013線程4」 PRIO = 7 TID = 6000000008413400 NID = 17279 lwp_id單= 518676等待監視器條目 [9fffffffe6eff000..9fffffffe6f00b50] java.lang.Thread.State中: 在 org.apache.log4j.Category.callAppenders(Category.java:201) BLOCKED(對象監視器上) - 等待鎖定< 9ffffffde1e7ec88>(一個 org.apache.log4j.spi.RootLogger)在 org.apache.log4j.Category.forcedLog(Category.java:388)在 org.apache.log4j.Category.log(Category.java:853)在 組織.slf4j.impl.Log4jLoggerAdapter.debug(Log4jLoggerAdapter.java:173) at org.hibernate.loader.Loader.getRow(Loader.java:1197)at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:603 )at org.hibernate.loader.Loader.doQuery(Loader.java:724)at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) at org.hibernate.loader.Loader.loadEntity(Loader的.java:1881)在 org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:71) 在 或g.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:65) 在 org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3072) 在 org.hibernate.event.def。 DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:434) 在 org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:415) 在 org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java: 165) 在 org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:223) 在 org.hibernate.event.def.DefaultLoadE ventListener.onLoad(DefaultLoadEventListener.java:126) at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl。的java:905)
「池-1013線程3」 PRIO = 7 TID = 6000000008411c00 NID = 17278 lwp_id單= 518675等待監視器條目 [9fffffffe70ff000..9fffffffe7100ad0] java.lang.Thread.State中: 在 org.apache.log4j.Category.callAppenders(Category.java:201) BLOCKED(對象監視器上) - 等待在 org.apache鎖定< 9ffffffde1e7ec88>(一個 org.apache.log4j.spi.RootLogger) (Log4jLoggerAdapter.java:173) 在 個org.hibernate.jdbc.AbstractBatcher.logOpenResults(AbstractBatcher.java:426) 在 org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:210) 在org.hibernate.loader.Loader.getResultSet(裝載機。的java:1808)在 org.hibernate.loader.Loader.doQuery(Loader.java:697)
爲什麼不張貼堆棧跟蹤?我們不會下載它。 – Jonas
,因爲stackoverflow的限制... –
你是否沒有'notify/notifyAll'調用'wait'? –