TroubleShooting: Java Message Service (JMS) problems for IBM WebSphere Application Server Versions 5.0, 5.1, and 6.0
 Technote (troubleshooting)
 
Problem(Abstract)
Troubleshooting for Java™ Message Service (JMS) problems in IBM® WebSphere® Application Server. This should help address common issues with this component before calling IBM support and save you time.
 
Resolving the problem

1. Learning more 2. Troubleshooting 3. Collecting data

TroubleShooting steps to help resolve JMS problems
  1. What JMS Provider are you using?
    • WebSphere JMS Provider (V5 only) - continue to Question 2

    • WebSphere MQ JMS Provider - continue to Question 9

    • Generic JMS Provider - continue to Question 25

    • Default Messaging JMS Provider (V6 only) - refer to the TroubleShooting and MustGather documens for Service integration technologies

    • V5 Default Messaging JMS Provider (V6 only) - refer to the TroubleShooting and MustGather documents for Service integration technologies

  2. Do the embedded queue manager and broker start successfully? You can check for the following output in the SystemOut.log file for the application server or jmsserver (if running in a Network Deployment environment):

    MSGS0050I: Starting the Queue Manager
    MSGS0051I: Queue Manager open for business
    MSGS0052I: Starting the Broker
    MSGS0053I: Broker open for business

    If the queue manager or broker does not start successfully, there will be an error after the MSGS0050I or MSGS0052I messages.
    • If either fail to start, continue to Question 3.
    • If both start successfully, continue to Question 9.

  3. If you do not see any attempt to start the embedded queue manager and broker in the SystemOut.log file (signified by the MSGS0050I and MSGS0052I messages):
    • Review this technote on setting the Initial State.
    • Otherwise, continue to Question 4.

  4. Ensure that the embedded queue manager exists. Run the dspmq command. The name of the queue manager will be WAS_nodename_appservername, or in a Network Deployment environment, WAS_nodename_jmsserver.
    • If the queue manager does not exist, create it using the createmq command.
    • If the queue manager does exist, continue to Question 5.

  5. Is the application server or the jmsserver being started by a non-root user? Note that this does not apply on Windows® operating systems.
    • If you are using a non-root user, ensure that all of the necessary steps have been followed.
    • If you are using a root user or if you are running on Windows, continue to Question 6.

  6. Does the embedded broker fail to start with the following error?

    MSGS0255E: Broker Manager unable to attach to Queue Manager - unknown Queue

    • If it does, then review this technote.
    • If not, continue to Question 7.

  7. Are you using a WebSphere Application Server test server within WebSphere Studio Application Developer V5?
    • If you are, then review this technote.
    • If not, continue to Question 8.

  8. Review the suggested diagnostic steps for the specific error code that is occurring during the attempted start of the queue manager. If you still cannot resolve the problem, continue to the MustGather for JMS problems.

  9. Is the problem related to a Message-driven bean (MDB)?
    • If yes, continue to Question 10.
    • If no, continue to Question 18.

  10. Is the listener port or activation specification that is associated with the MDB started? You can check the status using the administrative console or the SystemOut.log file for the application server.
    • If yes, continue to Question 11.
    • If no, start the listener port or activation specification using the Administrative Console.

  11. Is the listener port unable to start? The following error indicates that the listener port is unable to start:

    WMSG0059E: Maximum restart retry count of 5 reached for Listener Port MyListenerPort

    • If the preceding error does occur when the listener port attempts to start, ensure that the queue manager is started, and consider increasing the MAX.RECOVERY.RETRIES and RECOVERY.RETRY.INTERVAL properties. They are described here. You should also check for any other errors that may show the reason why the listener port fails to start and then continue to Question 12.
    • If the listener port does start, continue to Question 12.

  12. Are you getting a specific error that causes the MDB to not receive messages?
    • For a MQJMS1016 error caused by a NullPointerException, review this technote.
    • For a MQJMS1025 error with Reason code 2026, review this technote. This problem may occur if message selectors are used.
    • If you are receiving a java.lang.ClassCastException: com.ibm.jms.JMSBytesMessage, review this technote.
    • For a MQJMS2005 error with Reason code 2009, review this technote.
    • If transaction timeouts or rollbacks occur, review this technote and set the Maximum messages property on the listener port to 1.
    • If you are not encountering any of the preceding errors, continue to Question 13.

  13. Are you running WebSphere Application Server V5.1.1.4?
    • If yes, your problem is likely caused by a known defect; review this technote.
    • If no, continue to Question 14.

  14. Are you running WebSphere Application Server Enterprise Edition V5 or WebSphere Business Integration Server Foundation V5.1 with the Extended Messaging Service enabled?
    • If yes, disable the Extended Messaging Service by following this technote.
    • If no, continue to Question 15.

  15. Did the listener port stop due to the Maximum retries property on the listener port being reached? When this occurs, an entry like this will appear in the SystemOut.log file for the application server:

    WMSG0036E: Maximum message delivery retry count of 1 reached for MDB MyMDB, JMSDestination jms/myQueue, MDBListener stopped

    • If yes, ensure that the backout threshold property on the queue is set to a value higher than the Maximum retries property on the listener port. You can find more information about this here.
    • If no, continue to Question 16.

  16. Is the problem related to slower than expected performance with the MDB? For example, the MDB processes messages more slowly than you believe it should.
    • If yes, consider increasing the Maximum sessions property on the listener port (described here) and the com.ibm.mq.jms.tuning.eoqTimeout JVM™ property (described here).
    • If no, continue to Question 17.

  17. Is the problem related to the distribution of the messages among MDBs in a cluster?
    • If yes, review this technote.
    • If no, continue to Question 18.

  18. Is the problem related to security; for example, any errors related to authentication and authorization of JMS requests?
    • If yes, continue to Question 19.
    • If no, continue to Question 21.

  19. Are either of the following authentication errors occurring when trying to establish a JMS connection?

    MSGS0508E: The JMS Server security service was unable to authenticate userid: myuser
    javax.jms.JMSSecurityException: MQJMS2013: invalid security authentication supplied for MQQueueManager

    • If yes, ensure that a J2C authentication alias is specified on your QCF or TCF. If you are using the WebSphere JMS Provider in V5 (Embedded Messaging), ensure that the userid specified in the J2C authentication alias is also in the user registry. See this technote and this technote for more information.
    • If no, continue to Question 20.

  20. Is an authorization error like the following occurring when trying to establish a JMS connection?

    MSGS0509E: The JMS Server security service was unable to authorize userid myuser to access resource myQueue with write permission

    • If yes, configure the integral-jms-authorizations.xml file to grant permission to the userid to access the queue or topic. This is described in detail here.
    • If no, continue to Question 21.

  21. Is the problem related to the connection between WebSphere Application Server and the messaging system? This would include connection pooling problems.
    • If yes, continue to Question 22.
    • If no, continue to Question 25.

  22. Is the problem related to the number of TCP/IP connections that you observe between your application server process and an MQ queue manager?
    • If yes, or if you want to gain an understanding of how JMS connection pooling in WebSphere Application Server works, review this technote.
    • If no, continue to Question 23.

  23. Are you receiving JMS exceptions with MQ reason code 2019?
    • If yes, review this technote.
    • If no, continue to Question 24.

  24. Are you receiving the following exception?

    J2CA0020E: The Connection Pool Manager could not allocate a Managed Connection: java.lang.IllegalStateException: Internal Error: cannot find the PoolManager Reference

    • If yes, review this technote.
    • If no, continue to Question 25.

  25. Is your problem related to the configuration of a Generic JMS Provider?
    • If yes, review the Information Center documentation on configuring your Generic JMS Provider.
    • If no, continue to Question 26.

  26. Review the WebSphere Application Server V5, V5.1, or V6.0 Information Center, or the WebSphere Application Server Support site for additional information that may help you to resolve the problem.

What to do Next?
If the preceding troubleshooting steps did not solve your problem, see the MustGather for JMS problems to continue investigation.
 
 
Cross Reference information
Segment Product Component Platform Version Edition
Application Servers Runtimes for Java Technology Java SDK
 
 


Document Information


Product categories: Software > Application Servers > Distributed Application & Web Servers > WebSphere Application Server > Java Message Service (JMS)
Operating system(s): Windows
Software version: 6.0.2
Software edition:
Reference #: 1230514
IBM Group: Software Group
Modified date: Aug 31, 2006