analyzing the dynamic behavior we can see from the thread dump that a lot of our threads that are just doing simple queries (just selects, no update or delete ...) show locks like these (question is: why there are locks and how could we get rid of that):
log1:
"qtp1523553211-271" #271 prio=5 os_prio=0 tid=0x000000004fcb3800 nid=0x440 waiting for monitor entry [0x00000000559ae000]
java.lang.Thread.State: BLOCKED (on object monitor)
at com.objectdb.o.LFL.UB(LFL.java:1098)
- waiting to lock <0x0000000202239c10> (a com.objectdb.o.LFL)
at com.objectdb.o.PAG.au(PAG.java:928)
at com.objectdb.o.PGC.C(PGC.java:281)
- locked <0x00000002029df788> (a java.lang.Object)
at com.objectdb.o.SNP.G(SNP.java:436)
at com.objectdb.o.RTT.l(RTT.java:127)
at com.objectdb.o.RST.l(RST.java:24)
at com.objectdb.o.RTT.D(RTT.java:179)
at com.objectdb.o.RST.s(RST.java:121)
at com.objectdb.o.PGT.q(PGT.java:109)
at com.objectdb.o.RST.B(RST.java:93)
at com.objectdb.o.RTT.l(RTT.java:132)
at com.objectdb.o.RST.l(RST.java:24)
at com.objectdb.o.RTT.D(RTT.java:179)
at com.objectdb.o.RST.s(RST.java:121)
at com.objectdb.o.PGT.q(PGT.java:109)
at com.objectdb.o.RST.B(RST.java:93)
at com.objectdb.o.RTT.l(RTT.java:132)
at com.objectdb.o.RST.l(RST.java:24)
at com.objectdb.o.TSK.i(TSK.java:145)
at com.objectdb.o.TSK.f(TSK.java:95)
at com.objectdb.o.TSM.e(TSM.java:86)
at com.objectdb.o.RTT.D(RTT.java:177)
at com.objectdb.o.RST.s(RST.java:121)
at com.objectdb.o.PGT.q(PGT.java:109)
at com.objectdb.o.RST.B(RST.java:93)
at com.objectdb.o.RTT.l(RTT.java:132)
at com.objectdb.o.RST.l(RST.java:24)
at com.objectdb.o.TSK.i(TSK.java:145)
at com.objectdb.o.TSK.f(TSK.java:95)
at com.objectdb.o.MST.a0(MST.java:609)
at com.objectdb.o.MST.Vm(MST.java:565)
at com.objectdb.o.PLN.Vm(PLN.java:517)
at com.objectdb.o.TAI.A(TAI.java:201)
at com.objectdb.o.TAI.UI(TAI.java:134)
at com.objectdb.o.TQI.UI(TQI.java:54)
at com.objectdb.o.PRG.ag(PRG.java:687)
at com.objectdb.o.PRG.af(PRG.java:555)
at com.objectdb.o.QRM.Vo(QRM.java:286)
at com.objectdb.o.MST.Vo(MST.java:988)
at com.objectdb.o.WRA.Vo(WRA.java:311)
at com.objectdb.o.WSM.Vo(WSM.java:115)
at com.objectdb.o.QRR.g(QRR.java:247)
at com.objectdb.o.QRR.f(QRR.java:153)
at com.objectdb.jpa.JpaQuery.getResultList(JpaQuery.java:719)
- locked <0x0000000633b83180> (a com.objectdb.jdo.PMImpl)
at com.agile.hummingbird.API.handleQuery(API.java:3020)
at com.agile.hummingbird.API.directRequest(API.java:852)
at com.agile.hummingbird.API.handleWebSocketRequest(API.java:614)
at com.agile.hummingbird.WebSocketServerListener.onWebSocketText(WebSocketServerListener.java:123)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:128)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:65)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:122)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:161)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:309)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:163)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:105)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:136)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:85)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:214)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220)
at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:258)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:632)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:480)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
or:
"qtp1523553211-264" #264 prio=5 os_prio=0 tid=0x000000004f95f000 nid=0x1d28 runnable [0x00000000550ae000]
java.lang.Thread.State: RUNNABLE
at com.objectdb.o.BQI.VM(BQI.java:151)
at com.objectdb.o.MQI.VM(MQI.java:145)
at com.objectdb.o.MQI.VM(MQI.java:120)
at com.objectdb.o.MQI.VM(MQI.java:120)
at com.objectdb.o.GQI.UI(GQI.java:148)
at com.objectdb.o.SQI.UI(SQI.java:108)
at com.objectdb.o.PRG.ag(PRG.java:687)
at com.objectdb.o.PRG.af(PRG.java:555)
at com.objectdb.o.QRM.Vo(QRM.java:286)
at com.objectdb.o.MST.Vo(MST.java:988)
at com.objectdb.o.WRA.Vo(WRA.java:311)
at com.objectdb.o.WSM.Vo(WSM.java:115)
at com.objectdb.o.QRR.g(QRR.java:247)
at com.objectdb.o.QRR.f(QRR.java:153)
at com.objectdb.jpa.JpaQuery.getResultList(JpaQuery.java:719)
- locked <0x00000007b974f4f0> (a com.objectdb.jdo.PMImpl)
at com.agile.hummingbird.CT_Container.computeContainer(CT_Container.java:161)
at com.agile.hummingbird.API.handleGetContainer(API.java:2484)
at com.agile.hummingbird.API.directRequest(API.java:786)
at com.agile.hummingbird.API.handleWebSocketRequest(API.java:614)
at com.agile.hummingbird.WebSocketServerListener.onWebSocketText(WebSocketServerListener.java:123)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextMessage(JettyListenerEventDriver.java:128)
at org.eclipse.jetty.websocket.common.message.SimpleTextMessage.messageComplete(SimpleTextMessage.java:69)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.appendMessage(AbstractEventDriver.java:65)
at org.eclipse.jetty.websocket.common.events.JettyListenerEventDriver.onTextFrame(JettyListenerEventDriver.java:122)
at org.eclipse.jetty.websocket.common.events.AbstractEventDriver.incomingFrame(AbstractEventDriver.java:161)
at org.eclipse.jetty.websocket.common.WebSocketSession.incomingFrame(WebSocketSession.java:309)
at org.eclipse.jetty.websocket.common.extensions.AbstractExtension.nextIncomingFrame(AbstractExtension.java:163)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.nextIncomingFrame(PerMessageDeflateExtension.java:105)
at org.eclipse.jetty.websocket.common.extensions.compress.CompressExtension.forwardIncoming(CompressExtension.java:136)
at org.eclipse.jetty.websocket.common.extensions.compress.PerMessageDeflateExtension.incomingFrame(PerMessageDeflateExtension.java:85)
at org.eclipse.jetty.websocket.common.extensions.ExtensionStack.incomingFrame(ExtensionStack.java:214)
at org.eclipse.jetty.websocket.common.Parser.notifyFrame(Parser.java:220)
at org.eclipse.jetty.websocket.common.Parser.parse(Parser.java:258)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.readParse(AbstractWebSocketConnection.java:632)
at org.eclipse.jetty.websocket.common.io.AbstractWebSocketConnection.onFillable(AbstractWebSocketConnection.java:480)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None
