Link to home
Start Free TrialLog in
Avatar of pandey5
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.

 
Avatar of cjjclifford
cjjclifford

how are you handling ACK of the messages? What transactionality handling is set for the MDB?
Avatar of pandey5

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(Native Method)
- waiting on <0x109c0eb8> (a weblogic.transaction.internal.ServerTransactionImpl)at weblogic.transaction.internal.ServerTransactionImpl.waitForPrepareAcks(ServerTransactionImpl.java:2264)
- locked <0x109c0eb8> (a weblogic.transaction.internal.ServerTransactionImpl)
at weblogic.transaction.internal.ServerTransactionImpl.globalPrepare(ServerTransactionImpl.java:1971)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:252)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:221)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:412)
at weblogic.ejb20.internal.MDListener.transactionalOnMessage(MDListener.java:316)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:281)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2596)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2516)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
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....
Avatar of pandey5

ASKER

Thanks a lot. It worked after changing the transaction type to NotSupported. :-)
ASKER CERTIFIED SOLUTION
Avatar of cjjclifford
cjjclifford

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
thanks. Why just a B though :-)