1 Reply Latest reply on Jun 22, 2007 12:12 PM by adrian.brock

    MDBS threads are in TIMED_WAITING state

    assaf49

      Hi,

      We are running on JBoss 4.0.5, jdk 5.
      We are performing load test, and sending ~20000 JMS messages per minute.
      We notice the the Jms queue depth is continuously growing (it reaches about 300000 !).

      We increased the number of MDBs consuming messages from this queue to 200, but for some reason it seems most of the MDBs (175 out of 200) are in state : TIMED_WAITING . (see example for one of the MDBs in the thread dump below)

      "JMS SessionPool Worker-198" daemon prio=10 tid=0x00f11800 nid=0x184 in Object.wait() [0x1327f000..0x1327fa70]
      java.lang.Thread.State: TIMED_WAITING (on object monitor)
      at java.lang.Object.wait(Native Method)
      at EDU.oswego.cs.dl.util.concurrent.SynchronousChannel.poll(SynchronousChannel.java:353)
      - locked <0xaeaa5788> (a EDU.oswego.cs.dl.util.concurrent.LinkedNode)
      at EDU.oswego.cs.dl.util.concurrent.PooledExecutor.getTask(PooledExecutor.java:723)
      at org.jboss.jms.asf.StdServerSessionPool$MyPooledExecutor.getTask(StdServerSessionPool.java:397)
      at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:747)
      at java.lang.Thread.run(Thread.java:619)

      Our application is running on a very strong T2000 machine with 32 cpu ( cpu load is 15%) and 3 giga memory ( memory consumption is 50%).

      Our question: why are most of our Jms threads (MDBs) in TIMED_WAITING state instead of consuming messages from the queue?

      your help is appreciated
      John