Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 992
  • Last Modified:

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.

 
0
pandey5
Asked:
pandey5
  • 4
  • 2
1 Solution
 
cjjcliffordCommented:
how are you handling ACK of the messages? What transactionality handling is set for the MDB?
0
 
pandey5Author Commented:
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)
0
 
cjjcliffordCommented:
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....
0
What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

 
pandey5Author Commented:
Thanks a lot. It worked after changing the transaction type to NotSupported. :-)
0
 
cjjcliffordCommented:
cheers (btw, accept the answer if it worked)
0
 
cjjcliffordCommented:
thanks. Why just a B though :-)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now