Messaging troubleshooting tips

These tips are to help you troubleshoot your WebSphere® messaging configuration.

To help you identify and resolve problems with messaging, you can use the WebSphere Application Server trace and logging facilities as described in Tracing and logging configuration.

[z/OS] To help you identify and resolve problems with messaging, you can use the WebSphere Application Server trace and logging facilities as described in Setting up component trace (CTRACE).

If you are having problems deploying or running applications that use the WebSphere Application Server messaging capabilities, see the following topics:

If you see WebSphere MQ error messages or reason codes in WebSphere Application Server messages and logs, refer to the WebSphere MQ Messages document.

Check to see if the problem has been identified and documented, by using the links in Diagnosing and fixing problems: Resources for learning.

Here is a set of tips to help you troubleshoot commonly-experienced problems. If you do not see a problem that resembles yours, or if the information provided does not solve your problem, contact IBM® support for further assistance.

WebSphere MQ resource adapter configuration is not automatically updated and requires manual maintenance [Fix Pack 1 or later]

Normally the WebSphere MQ resource adapter is automatically updated when you apply a WebSphere Application Server fix pack. However, there are some circumstances in which the resource adapter cannot be updated automatically and you therefore need to adjust the resource adapter configuration manually:
The application server or deployment manager profile was created with WebSphere Application Server Version 7.0.0.0, without any fix packs applied.
After WebSphere Application Server Version 7.0 Fix Pack 1 or later has been applied, the JVM logs for that application server show the following version information for the resource adapter:
WMSG1703I: RAR implementation version 7.0.0.0-k700-L080820
The WebSphere MQ JCA resource adapter has been manually updated on some nodes in your environment.
Applying a WebSphere Application Server fix pack does not automatically update the version of the WebSphere MQ resource adapter used by servers on nodes where the WebSphere MQ resource adapter has previously been manually updated.
You created a profile with WebSphere Application Server Version 7.0 Fix Pack 1 or later applied, and then uninstalled all fix packs from the installation to return to maintenance level 7.0.0.0.
The JVM logs of an application server experiencing this problem show the following error message:
WMSG1625E: It was not possible to detect the WebSphere MQ messaging provider code at the specified path <null>

To resolve these issues, see Maintaining the WebSphere MQ resource adapter.

java.lang.ClassNotFoundException exceptions occur when you install a fix pack

If, when installing a fix pack you see the following message, follow the instructions in Maintaining the WebSphere MQ resource adapter to try and resolve the problem:
J2CA0043E: An exception occurred while trying to instantiate a ResourceAdapter
JavaBean instance for the installed ResourceAdapter defined by key #removed#

Messages from WebSphere MQ for z/OS are not being consumed by JMS applications that are deployed into WebSphere Application Server and that use connection factories or activation specifications

There is a known restriction which means that, when you use the WebSphere MQ messaging provider to connect to a recent version of WebSphere MQ for z/OS, you must configure the connection factories and activation specifications to treat the WebSphere MQ for z/OS network as if it were a WebSphere MQ for z/OS Version 6.0 network. Specifically, you must configure the Provider version property of each associated connection factory or activation specification with a value of 6.0.0.0.

[Fix Pack 5 or later] For Fix Pack 5 or later this restriction has changed. If a connection factory or activation specification is used to connect to a queue manager or queue-sharing group on a WebSphere MQ for z/OS Version 7.0 system, you must configure the Provider version property with a value of 6.0.0.0.

A JMS application can no longer send or receive messages, or a destination becomes full and can no longer receive messages

When you configure an application to use the default messaging provider, you associate it with either of the following resource sets:
  • One or more message beans connected through Java Message Service (JMS) activation specifications.
  • One or more enterprise beans connected through JMS connection factories and JMS destinations.
To help resolve this problem, use the following administrative console panels to inspect the configuration of your applications and JMS resources:

javax.jms.JMSException: MQJMS2008: failed to open MQ queue in JVM log

This error can occur when the WebSphere MQ queue name is not defined in the internal Java Message Service (JMS) server queue names list. This problem can occur if a WebSphere Application Server queue destination is created without adding the queue name to the internal JMS server queue names list.

To resolve this problem:
  1. Start the WebSphere Application Server administrative console.
  2. Navigate to Servers > Server Types > Version 5 JMS servers
  3. Add the queue name to the list.
  4. Save the changes and restart the server.

An MDB listener fails to start

If an MDB listener deployed against a listener port fails to start, you should see the following message:
WMSG0019E: Unable to start MDB Listener {0}, JMSDestination {1} : {2} 
To help resolve this problem, check the following factors:
  • Check that the administrative resources have been configured correctly. For example, use the administrative console to check the listener port properties: Destination JNDI name and Connection factory JNDI name. Check that other properties of the listener port, destination, and connection factory are correct.
  • Check that the queue exists and has been added to the JMS server.
  • Check that the queue manager and JMS server have started.
  • Check that the Remote Queue Manager Listener has started.
  • If security is enabled, check that a component-managed authentication alias has been specified on the queue connection factory or topic connection factory used by the message-driven bean.If security is enabled, check that the user ID used to start the MDB listener is appropriately authorized. For more information, see Problems running JMS applications with security enabled.

Problems running JMS applications with security enabled

When you try to run a JMS application with security enabled, you can encounter authentication problems indicated by one or more of the following error messages:
WMSG0019E: Unable to start MDB Listener PSSampleMDB, JMSDestination Sample/JMS/listen : javax.jms.JMSSecurityException:
This example indicates that the security credentials supplied are not valid.
To resolve this problem, check the security configuration:
  • If the authentication mechanism is set to Application, the application must supply valid credentials.
  • If the authentication mechanism is set to Container, you must configure the JMS connection factory with a container-managed authentication alias, and ensure that the associated user ID and password are valid. Alternatively, when running in bindings transport mode you can exploit the connector thread identity support.
[AIX Solaris HP-UX Linux Windows]
MQJMS2013 invalid security authentication supplied for MQQueueManager:
If you are using WebSphere MQ as a JMS provider, with JMS connection and using bindings transport mode, and the user specified is not the current logged-on user for the WebSphere Application Server process, the JMS bindings authentication by WebSphere MQ generates an invalid security authentication error.
To resolve this problem, check the security configuration. When you configure the WebSphere MQ JMS provider to use bindings transport mode, you set the property Transport type to BINDINGS on the WebSphere MQ queue connection factory. At this time, you also choose one of the following options:
  • Use security credentials. To do this, ensure that the user specified is the currently logged-on user for the WebSphere Application Server process.
  • Do not use security credentials. On the WebSphere MQ connection factory, ensure that the Component-managed Authentication Alias and the Container-managed Authentication Alias properties are not set.

For more information about messaging security, see Securing messaging.

Application server does not start when the zh_TW.EUC locale is set on Solaris [AIX Solaris HP-UX Linux Windows]

On Solaris, if you set the locale to zh_TW.EUC and you are using WebSphere MQ as a JMS provider, your application servers might not start up.

To resolve this problem, set the LANG and LC_ALL variables to zh_TW.

Server memory consumption and java.lang.OutOfMemoryError exception when processing JMS messages

When you use the default messaging provider, JMS messages are processed by a messaging engine within the application server process. This approach consumes memory from the application server JVM heap. If there is significant concurrent processing of large messages, and the amount of memory available to the JVM heap is not enough to handle this event, then a java.lang.OutOfMemoryError exception is thrown and the application server terminates.

To resolve this problem, estimate the potential number of concurrent processors or consumers of messages and the message sizes, then set the size of the application server JVM heap to handle the effect. For example:
  1. When you deploy a message-driven bean that processes messages concurrently, estimate the potential consumption of the application server memory by concurrent endpoints. Note that each endpoint that is concurrently processing a message request adds at least two times the message size to the server JVM heap and can add more, especially if a two-phase transaction is in place.
  2. Start the WebSphere Application Server administrative console.
  3. Navigate to Servers > Server Types > WebSphere application servers > server_name > Java and Process Management > Process Definition > Java Virtual Machine, then configure the amount of memory available to the application server JVM heap by setting the Initial Heap Size and Maximum Heap Size properties.
  4. Navigate to Resources > JMS > JMS providers > Default messaging provider > Activation specifications > activation_specification_name , then configure the number of concurrent MDB endpoints that can process messages by setting the Maximum concurrent endpoints property of the activation specification for this message-driven bean.

TopicConnectionFactory attributes clash error when you use "Basic" WebSphere MQ broker (MA0C SupportPac broker)

When you create a JMS topic subscriber that uses the WebSphere MQ messaging provider, the following error message can occur in the SystemOut.log file:
WSVR0017E: Error encountered binding the J2EE resource, TopicConnectionFactory, as <JNDI_NAME>
   from file:<RESOURCES_FILE> com.ibm.ws.runtime.component.binder.ResourceBindingException: invalid
   configuration passed to resource binding logic. REASON: Failed to create connection factory:
   Error raised constructing AdminObject, error code:  TopicConnectionFactory attributes clash  : 
   TopicConnectionFactory attributes clash 

This problem is caused by the configuration of the JMS topic connection factory that is used to create the subscriber, which specifies a broker version of "Basic" and a message selection value of "Broker". The "Basic" WebSphere MQ broker (MA0C SupportPac broker) does not support "Broker" message selection.

To resolve this problem, change the JMS topic connection factory to specify a message selection value of "Client", which is the only supported value for the WebSphere MQ Basic broker (MA0C SupportPac broker).

WSEC5061E: The SOAP Body is not signed exception is issued when running a secured Web services application that uses JMS transport and WebSphere MQ

When you run a secured Web services application that uses JMS transport under the WebSphere MQ messaging provider, the following error message can occur in the SystemOut.log file:
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5061E: The SOAP Body is not signed.; null
This problem occurs under the following circumstances:
  • A Web service application, configured with Web services security, is running in an application server that has WebSphere Application Server security enabled.
  • This Web service application uses the JMS transport to send SOAP requests to a target Web service.
  • The JMS resource uses a remote WebSphere MQ server to connect to a WebSphere MQ queue.
  • Another identical Web service application, configured to use the same queue through the same WebSphere MQ server, is running in a different application server that does not have WebSphere Application Server security enabled.

The problem occurs when a request sent from the original application is processed through the same queue, but to the different application server where security is not enabled.

To resolve this problem:
  1. Create a unique queue manager with a unique port in the WebSphere MQ server.
  2. Reconfigure the JMS resources to use the new queue manager and port; for example, by using the WebSphere Application Server administrative console to change the properties of the WebSphere MQ queue connection factory, as described in Configuring a queue connection factory for the WebSphere MQ messaging provider.
  3. Rerun the application.

Message MQJMS1006: invalid value for tempQPrefix is issued when trying to use a Version 5.1 client with a V5 default messaging provider queue connection factory on a Version 7.0 application server

When you use a WebSphere Application Server Version 5.1 application client to connect to a queue connection factory defined as a "V5 default messaging provider"" resource on a WebSphere Application Server Version 7.0 application server, the following message is displayed:
com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred while the JNDI
   NamingManager was processing a javax.naming.Reference object.  
Root exception is com.ibm.websphere.naming.CannotInstantiateObjectException: Exception occurred
   while the JNDI NamingManager was processing a javax.naming.Reference object.  
Root exception is javax.jms.JMSException: MQJMS1006: invalid value for tempQPrefix:

This problem occurs when the application client is using WebSphere MQ JMS client CSD 04 JAR files. WebSphere Application Server Version 7.0 sets the tempQprefix property to blank, and this value cannot be handled by the CSD 04 release of the setTempqPrefix method.

To resolve this problem:
  • If the application client uses WebSphere embedded messaging JAR files, apply the WebSphere embedded messaging interim fixes for WebSphere Application Server Version 5.1.
  • If the client uses external WebSphere MQ JMS client JAR files, apply the CSD 05 release.

When you use WebSphere MQ as an external JMS provider, messages sent within a user-managed transaction arrive before the transaction commits

When you use WebSphere MQ as an external JMS provider, and you send a message to a WebSphere MQ queue within a user-managed transaction, the message can arrive on the destination queue before the transaction commits. This problem occurs when the WebSphere MQ resource manager is not enlisted in the user-managed transaction.

To resolve this problem, use a container-managed transaction.

javax.jms.JMSException: MQJMS3024: unable to start MDB listener [AIX Solaris HP-UX Linux Windows]

This error can occur if you use an uninitialized client ID (that is, a client ID that is not associated with a durable subscription). To resolve this problem, set the client ID in one of the following three ways:
  • Set the client ID as a property of the tcf, by using the jmsadmin tool. For example, alter tcf(myTCF) clientid(myID).
  • Set the client ID programmatically, by using TopicConnection.setClientID().
  • Set the client ID field administratively, by using the administrative console to modify the WebSphere MQ messaging provider topic connection factory settings.

SVC: jms.BrokerCommandFailedExceptfailed: 3008 [AIX Solaris HP-UX Linux Windows]

This error can occur when you log in to a Windows® 2000 system as an administrator.

To resolve this problem, log out and log in again as a user, rather than an administrator.

For the WebSphere MQ messaging provider, channel framework messages appear during server startup [z/OS]

The following message might be displayed several times in the control region adjunct process during server startup, even though the connection succeeds on subsequent retries. This message is issued because of the asynchronous way in which the z/OS TCP proxy channel starts and does not indicate that any error has occurred.

Trace: 2009/06/17 08:24:41.434 01 t=9C6B58 c=UNK key=P8 (00000011)
Description: Log Java Message 
Message: CHFW0030E: Error starting chain _InboundTCPProxyBridgeService because 
of exception com.ibm.wsspi.channel.framework.exception.RetryableChannelException: 
An exception was thrown when attempting to start the TCPProxyChannel 
com.ibm.ws.channel.framework.imp l.ChannelFrameworkImpl
These messages might be accompanied by First Failure Data Capture (FFDC) output similar to the following example:
Exception = com.ibm.wsspi.channel.framework.exception.RetryableChannelException
Source = com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal
probeid = 2577
Stack Dump = com.ibm.wsspi.channel.framework.exception.RetryableChannelException: An exception was thrown when attempting to start the TCPProxyChannel
        at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.start(TCPProxyInboundChannel.java:153)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChannelInChain(ChannelFrameworkImpl.java:1410)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal(ChannelFrameworkImpl.java:2863)
        at com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl.startChainInternal(WSChannelFrameworkImpl.java:960)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChainInternal(ChannelFrameworkImpl.java:2794)
        at com.ibm.ws.channel.framework.impl.ChannelFrameworkImpl.startChain(ChannelFrameworkImpl.java:2779)
        at com.ibm.ws.runtime.component.ChannelFrameworkServiceImpl.startChain(ChannelFrameworkServiceImpl.java:666)
        at com.ibm.ws.sib.jfapchannel.framework.impl.ChannelFrameworkReference$TCPProxyBridgeServiceInboundChainStartupRunnable.run(ChannelFrameworkReference.java:1641)
        at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1550)
Caused by: com.ibm.ws.tcpchannelproxy.jfap.NotYetInitializedException: Server is not yet initialized
        at com.ibm.ws.tcpchannelproxy.jfap.TCPProxyBridgeServicesImpl.startListening(TCPProxyBridgeServicesImpl.java:558)
        at com.ibm.ws.tcpchannelproxy.jfap.impl.TCPProxyInboundChannel.start(TCPProxyInboundChannel.java:131)
        ... 8 more
Eventually the following message should be displayed indicating that the z/OS TCP proxy channel has started up correctly:
Trace: 2009/06/17 08:24:51.449 01 t=9C6B58 c=UNK key=P8 (13007002)
   ThreadId: 00000003
   FunctionName: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
   SourceId: com.ibm.ws.channel.framework.impl.WSChannelFrameworkImpl
   Category: AUDIT
   ExtendedMessage: BBOO0222I: CHFW0019I: The Transport Channel Service has started 
chain _InboundTCPProxyBridgeService.

Error when converting a listener port to an activation specification, when the listener port has previously been migrated from WebSphere Application Server Version 6.1 to WebSphere Application Server Version 7.0

If you have migrated your configuration from WebSphere Application Server Version 6.1 to WebSphere Application Server Version 7.0 you might get a number format exception error when you convert your listener ports to activation specifications.

This error occurs because connection factories use different default coded character set identifiers in WebSphere Application Server Version 6.1 and WebSphere Application Server Version 7.0. After migrating your profile to WebSphere Application Server Version 7.0 you need to apply the new default coded character set identifier to your connection factory.

When you run the Convert to activation specification wizard an error message will generate in an ffdc file located in the following directory: profiles\myServer\logs\ffdc. Here is an example of the error that is displayed:
FFDC Exception:java.lang.NumberFormatException SourceId:com.ibm.ws.messaging.admin.command.MigrateWMQMLPCmd.beforeStepsExecuted ProbeId:148 Reporter:com.ibm.ws.messaging.admin.command.MigrateWMQMLPCmd@34f034f0

If the connection factory that your listener port is using does not have any custom properties a null pointer exception will generate when the Convert to activation specification wizard is started.

This error occurs because the wizard searches for a list of custom properties on the connection factory. Connection factories that have no custom properties and that have been migrated from WebSphere Application Server Version 6.1 to WebSphere Application Server Version 7.0 do not have a list for the wizard to find.

When you run the Convert to activation specification wizard an error message will generate in an ffdc file located in the following directory: profiles\myServer\logs\ffdc. Here is an example of the error that is displayed:
FFDC Exception:java.lang.NullPointerException SourceId:com.ibm.ws.messaging.admin.command.MigrateWMQMLPCmd.beforeStepsExecuted ProbeId:148 Reporter:com.ibm.ws.messaging.admin.command.MigrateWMQMLPCmd@63a463a4
java.lang.NullPointerException
If you get a number format error, complete the following steps prior to using the Convert to activation specification wizard:
  1. In the navigation pane, expand Resources>JMS and click Connection Factories.
  2. On the Connection factories page, click on the connection factory that your listener port is configured to use.
  3. On the Connection factory properties page, click [Additional Properties] Advanced properties.
  4. Click Apply.
  5. Click Save.
  6. In the navigation pane, expandServers > Server Types > WebSphere application servers ->server_name > [Communications] Messaging > Message listener service > [Additional Properties] Listener Ports . Click on your listener port and convert it to an activation specification using the Convert to activation specification wizard.
If you get a null pointer exception error, complete the following steps prior to using the Convert to activation specification wizard:
  1. In the navigation pane, expand Resources>JMS and click Connection Factories.
  2. Click on the connection factory that your listener port is configured to use.
  3. On the Connection factory properties page, click [Additional Properties] Custom properties.
  4. On the custom properties page click New. Specify a custom property with a name and value of your choice.
  5. Click OK.
  6. Click Save.
  7. On the Connection factories page, click the connection factory that your listener port is configured to use.
  8. On the Connection factory properties page, click [Additional Properties] Custom properties.
  9. Select your custom property and click Delete.
  10. Click Save.
  11. In the navigation pane, expandServers > Server Types > WebSphere application servers ->server_name > [Communications] Messaging > Message listener service > [Additional Properties] Listener Ports . Click on your listener port and convert it to an activation specification using the Convert to activation specification wizard.



Related tasks
Troubleshooting message-driven beans
Troubleshooting performance monitoring statistics
WebSphere MQ messaging provider topic connection factory settings
Troubleshooting messaging
Troubleshooting service integration technologies
Related reference
Application deployment troubleshooting tips
Messaging resources for this application
Application resources for this destination
Reference topic Reference topic    

Terms and conditions for information centers | Feedback

Last updatedLast updated: Jun 11, 2013 8:40:09 AM CDT
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=v701sca&product=was-nd-mp&topic=rmj_prob0
File name: rmj_prob0.html