cancel
Showing results for 
Search instead for 
Did you mean: 

Function of com.sap.engine.lib.util.WaitQueue

peter_strauss
Participant
0 Kudos

Hello,

That does Function of com.sap.engine.lib.util.WaitQueue

I've noticed in thread dumps a huge number of threads in this state.

All are waiting on the same ID <9ffffffef4292000>

Does WaitQueue act as an Enqueue service?

The full entry is

"SAPEngine_Application_Thread[impl:3]_111" prio=10 tid=60000000060493a0 nid=199120 lwp_id=2684063 in Object.wait() [9fffffffb8090000..9ffff

fffb8090d00]

at java.lang.Object.wait(Native Method)

- waiting on <9ffffffef4292000> (a com.sap.engine.lib.util.WaitQueue)

at java.lang.Object.wait(Object.java:429)

at com.sap.engine.lib.util.WaitQueue.dequeue(WaitQueue.java:238)

- locked <9ffffffef4292000> (a com.sap.engine.lib.util.WaitQueue)

at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:147)

Peter

Accepted Solutions (1)

Accepted Solutions (1)

debasissahoo
Active Contributor
0 Kudos

Peter,

Have you already had a look at SAP Note 1016241 - J2EE Engine hangs because of unsufficient system threads?

When java starts, there are specific number of threads are started at the ThreadManager initialization. After startup, each thread is put in a waitQueue until there is a Runnableobject for processing. SCS of Java instance takes care of the enque service. and this queue is synonymous to dispatcher wait queue in a ABAP system.

http://help.sap.com/saphelp_srm40/helpdata/es/29/84343e8c7f6329e10000000a114084/content.htm

Regards,

Debasis.

peter_strauss
Participant
0 Kudos

Good answer.

What I think happened in our system was:

Normally we have about 50 threads running.

A locking thread occurred which caused other threads to go to "waiting for monitor entry"

New threads were spawned but they all went into "waiting for monitor entry" until there were about 300 threads (max is 350).

When the lock was released all of the threads that had been in "waiting for monitor entry" went into "WaitQueue" (which according to your explanation means they were waiting for a runnable object).

We have had the same problem a few times. Normally we have been able to identify the locking thread, but this time we were a little late getting the thread dumps so I think the lock had already been released.

Thanks again for your help. If you have any more comments please feel free to add them.

Kind regards,

Peter

Answers (0)