Hi Folks,
I have been evaluating glassfish and have called EJBs remotely using IIOP. I have tried several tuning options suggested from java serialization to direct buffer to increasing the thread pool, mutiple orb listener, iiop sizez etc etc.After taking a thread dump on client JVM. I have found lot of waits as below. My suspicion is app is spending lot of time in IIOP
Please find attached waiting threads info.It spends almost 10 ms to 500 ms waiting generating so many outliers.
Has anyone else got a similar issue with IIOP ?
I;m using OpenJDK 7
"p: default-threadpool; w: 26" daemon prio=10 tid=0x000000000b8b3800 nid=0x179f in Object.wait() [0x0000000058482000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:124) - locked <
0x00000000d7616450> (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:518)
Also,while monitoring threads on the server . I get lot of
ThreadState TIMED_WAITING
WaitingCount 32 count
BlockedCount 1 count
LockName com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl@c3a103c
Thanks in advance.
Gfeval
Attachment | Size |
---|---|
gatethreads.PNG | 92.85 KB |