pandey5
asked on
JMS processing few messages after that putting all the messages in pending list.
We have Message Driven Beans listening to the queue.
We have a client which is sending JMS messages to the Queue. It sends 100s of messages one by one. On the server, eight messages are being listened to and processed. The rest are ending up in the pending messages.
Do you have any idea what could be going wrong and why would it not process the rest of the messages. I'm trying to debug using the eclipse, what I found out was, after eight messages, the listener method on the MDB, which is 'onMessage' is not at all called again.
Its very little information I have provided. If you want to know anything, like configuration details or code snippets, please let me know.
We have a client which is sending JMS messages to the Queue. It sends 100s of messages one by one. On the server, eight messages are being listened to and processed. The rest are ending up in the pending messages.
Do you have any idea what could be going wrong and why would it not process the rest of the messages. I'm trying to debug using the eclipse, what I found out was, after eight messages, the listener method on the MDB, which is 'onMessage' is not at all called again.
Its very little information I have provided. If you want to know anything, like configuration details or code snippets, please let me know.
how are you handling ACK of the messages? What transactionality handling is set for the MDB?
ASKER
ACK is AUTOACKNOWLEDGE
Transaction Type is REQUIRED.
This is snippet from the thread dump once the server stopped receiving any messages:
"ExecuteThread: '6' for queue: 'weblogic.kernel.Default'" daemon prio=5 tid=0x28 9b8410 nid=0x634 in Object.wait() [2af1f000..2af1fdb0]at java.lang.Object.wait(Nati ve Method)
- waiting on <0x109c0eb8> (a weblogic.transaction.inter nal.Server Transactio nImpl)at weblogic.transaction.inter nal.Server Transactio nImpl.wait ForPrepare Acks(Serve rTransacti onImpl.jav a:2264)
- locked <0x109c0eb8> (a weblogic.transaction.inter nal.Server Transactio nImpl)
at weblogic.transaction.inter nal.Server Transactio nImpl.glob alPrepare( ServerTran sactionImp l.java:197 1)
at weblogic.transaction.inter nal.Server Transactio nImpl.inte rnalCommit (ServerTra nsactionIm pl.java:25 2)
at weblogic.transaction.inter nal.Server Transactio nImpl.comm it(ServerT ransaction Impl.java: 221)
at weblogic.ejb20.internal.MD Listener.e xecute(MDL istener.ja va:412)
at weblogic.ejb20.internal.MD Listener.t ransaction alOnMessag e(MDListen er.java:31 6)
at weblogic.ejb20.internal.MD Listener.o nMessage(M DListener. java:281)
at weblogic.jms.client.JMSSes sion.onMes sage(JMSSe ssion.java :2596)
at weblogic.jms.client.JMSSes sion.execu te(JMSSess ion.java:2 516)
at weblogic.kernel.ExecuteThr ead.execut e(ExecuteT hread.java :197)
at weblogic.kernel.ExecuteThr ead.run(Ex ecuteThrea d.java:170 )
Transaction Type is REQUIRED.
This is snippet from the thread dump once the server stopped receiving any messages:
"ExecuteThread: '6' for queue: 'weblogic.kernel.Default'"
- waiting on <0x109c0eb8> (a weblogic.transaction.inter
- locked <0x109c0eb8> (a weblogic.transaction.inter
at weblogic.transaction.inter
at weblogic.transaction.inter
at weblogic.transaction.inter
at weblogic.ejb20.internal.MD
at weblogic.ejb20.internal.MD
at weblogic.ejb20.internal.MD
at weblogic.jms.client.JMSSes
at weblogic.jms.client.JMSSes
at weblogic.kernel.ExecuteThr
at weblogic.kernel.ExecuteThr
been a while since I've worked on Weblogic, but it definitely looks like its waiting on a transaction... unless you are actually doing some transaction related processing in the MDB set the Transaction Type to "NotSupported", otherwise it could be waiting for an XA transaction to be commited somewhere....
ASKER
Thanks a lot. It worked after changing the transaction type to NotSupported. :-)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
thanks. Why just a B though :-)