WAS v8.5 > Reference > Troubleshooting tipsWS-ReliableMessaging troubleshooting tips
Tips for troubleshooting your WS-ReliableMessaging configuration.
IBM recommends using the HPEL log and trace infrastructure. With HPEL, one views logs using the LogViewer command-line tool in PROFILE/bin.
To help you identify and resolve problems with WS-ReliableMessaging, we can use the WebSphere Application Server trace and logging facilities. If we are using Eclipse-based tools, we can also use the TCP/IP monitor in Eclipse to view the messages that are flowing between your client applications and reliable messaging enabled Web services.
To enable trace for WS-ReliableMessaging, set the application server trace string as follows:
- For either of the managed qualities of service:
org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled:com.ibm.ws.sib.wsrm*=all=enabled
- For the Unmanaged Non-Persistent quality of service:
org.apache.sandesha2*=all=enabled:com.ibm.ws.websvcs.rm*=all=enabled:org.apache.axis2*=all=enabled
If you encounter a problem that you think might be related to WS-ReliableMessaging, we can check for error messages in the WAS dmgr console, and in the application server SystemOut.log file. We can also enable the application server debug trace to provide a detailed exception dump.
A list of the main known restrictions that apply when using WS-ReliableMessaging is provided in WS-ReliableMessaging known restrictions.
WAS system messages are logged from a variety of sources, including application server components and applications. Messages logged by application server components and associated IBM products start with a unique message identifier that indicates the component or application that issued the message. The prefix for the WS-ReliableMessaging component is CWSKA.
The Troubleshooter reference: Messages topic contains information about all WAS messages, indexed by message prefix. For each message there is an explanation of the problem, and details of any action that we can take to resolve the problem.
Here is a set of tips to help troubleshoot commonly-experienced problems:
- If a sequence is reallocated, you might see more sequences than you expect
- If reliable messaging is running on a cluster, when we examine the runtime state of inbound or outbound sequences you see multiple entries for each sequence
- Runtime errors occur when we migrate persisted WS-ReliableMessaging messages from v6.1.0.9 or 6.1.0.11
- When an application server starts, a messaging engine used for reliable messaging is reported as unavailable
- A client application is unable to invoke a reliable messaging enabled web service
- A sequence is not established and WS-ReliableMessaging cannot ensure messages are transmitted
- A sequence is established but cannot be used and WS-ReliableMessaging cannot ensure messages are transmitted
- Reliable messaging managed store is not initialized because the policy set binding is not complete or valid
- A message is not recovered after a server becomes unavailable
- An exception message states the security context token is not valid
If a sequence is reallocated, you might see more sequences than you expect
When you examine the runtime state of inbound or outbound sequences you might see more sequences than you expect, due to sequence reallocation
If a sequence is reallocated, the original and new sequences are both visible. Ignore the multiple entries.
If reliable messaging is running on a cluster, when we examine the runtime state of inbound or outbound sequences you see multiple entries for each sequence
This is because, although reliable messaging only binds to one messaging engine in a cluster, the runtime panel is calculating and displaying the sequence information once for every cluster member. Ignore the duplicate entries. Note the slight differences in the statistics being displayed for each duplicate entry is due to the entries being created sequentially, while polling for messages continues.
Runtime errors occur when we migrate persisted WS-ReliableMessaging messages from v6.1.0.9 or 6.1.0.11
If you are migrating from WAS v6.1, and you are using v6.1.0.9 or 6.1.0.11 of the Feature Pack for Web Services, and your configuration includes WS-ReliableMessaging configured for the managed persistent quality of service, you need to remove all persisted messages before you migrate.
Each message is persisted as part of a sequence that is currently being processed. To remove all persisted messages, use the dmgr console to complete the following steps:
- cd Inbound sequence page runtime panel for the reliable messaging application.
- Select all the inbound sequences, then click delete sequence and messages to delete the sequences.
- cd Outbound sequence page runtime panel, then repeat the previous steps for the outbound sequences.
When an application server starts, a messaging engine used for reliable messaging is reported as unavailable
When we use reliable messaging with a managed quality of service, you might see the following exception message when the application server starts:
CWSIT0019E: No suitable messaging engine is available on bus yourBus that matched the specified connection properties
If you suspect there is an underlying problem, for example the bindings are incorrect or the server that hosts the messaging engine is not going to start, complete the following checks:
- Check the specified messaging engine and service integration bus exist.
- Check the system out log to ensure the server that hosts the messaging engine has started.
A client application is unable to invoke a reliable messaging enabled web service
If your client application is unable to invoke a reliable messaging enabled web service, we can use the TCP-IP monitor to view the messages that are flowing between the client and the service. You should also check the following:
- The endpoint is available.
- The service is running.
- The service has been invoked.
- WS-ReliableMessaging is running.
- WS-ReliableMessaging is correctly configured. In particular, for either of the managed qualities of service, check that we have configured a valid binding to a service integration bus and messaging engine, and the messaging engine is running. For more information, see Attaching and binding a WS-ReliableMessaging policy set to a web service application or Attaching and binding a WS-ReliableMessaging policy set to a web service application using wsadmin.
- There are not too many applications sharing a single messaging engine.
When many applications use the same messaging engine, it can impact performance. Factors to consider include the number of applications that are already binding to the messaging engine, the CPU utilization, and the message throughput. To improve performance for a single server configuration, create a new messaging engine to bind to the application.
A sequence is not established and WS-ReliableMessaging cannot ensure messages are transmitted
After a sequence has been established, WS-ReliableMessaging provides retransmission of messages to a service. However if the sequence is not established then the messages are not transmitted to the service and a message similar to the following example is displayed:
org.apache.axis2.AxisFault: The Create Sequence request has been refused by the RM Destination
The initial createSequence message has been refused. This is propagated back, and causes the client to fail. For information about CreateSequence and CreateSequenceRefused, see the WS-ReliableMessaging: supported specifications and standards.
You might also see a subsequent message to help explain why the request has been refused. For example:
Caused by: javax.xml.ws.soap.SOAPFaultException: com.ibm.ws.sib.wsrm.exceptions.WSRMRuntimeException: CWSJZ0202I: A messaging engine connection is unavailable for bus myBus.There is a problem with your reliable messaging configuration. Complete the following checks:
- Check the policy sets are correctly applied. Specifically, check the destination has reliable messaging correctly enabled.
- Check the logs for server-side problems.
- For the managed persistent quality of service, check the associated messaging engine is available.
For further checks that might help you resolve the problem, see also the following troubleshooting tips:
- A sequence is established but cannot be used and WS-ReliableMessaging cannot ensure messages are transmitted.
- A client application is unable to invoke a reliable messaging enabled web service.
A sequence is established but cannot be used and WS-ReliableMessaging cannot ensure messages are transmitted
If you get an exception such as the following exception, then the sequence is established but cannot be used:
javax.xml.ws.WebServiceException: org.apache.axis2.AxisFault: The value of wsrm:Identifier is not a known Sequence identifier.
For checks that might help you resolve the problem, see the following troubleshooting tips:
- A sequence is not established and WS-ReliableMessaging cannot ensure messages are transmitted.
- A client application is unable to invoke a reliable messaging enabled web service.
Reliable messaging managed store is not initialized because the policy set binding is not complete or valid
If your policy set specifies a managed quality of service, but we have not specified a binding to a messaging engine to support that quality of service, you get the following exception message:
CWSKA0102E: The managed web services reliable messaging storage manager could not be initialized because the policy set binding was incomplete or invalid.
Perhaps we have attached a managed policy set to the application, and used the default bindings (which do not support the managed qualities of service). You must create a new binding for the application that specifies a service integration bus and messaging engine to support the managed qualities of service. To do this, see Attaching and binding a WS-ReliableMessaging policy set to a web service application .
A message is not recovered after a server becomes unavailable
When the reliable messaging layer receives a request message, it sends an acknowledgement then delivers the message to the target service. There is a marginal possibility the server hosting the reliable messaging layer might become unavailable after the request message has been acknowledged and before it has been delivered. In this case, the message is only recovered if you are using in-order delivery as well as managed persistent quality of service. To specify in-order delivery, select the WS-ReliableMessaging policy option to "Deliver messages in the order they were sent" as described in Configure the WS-ReliableMessaging policy.
There is a performance overhead in using in-order delivery, because messages are held in a queue until they can be delivered in order. However, where the highest level of reliability is required, you should always specify in-order delivery in conjunction with the managed persistent quality of service.
An exception message states the security context token is not valid
When using reliable messaging with a persistent WS-I RSP profile and WS-SecureConversation, an exception message states the security context token is not valid.
When we use a persistent WS-I RSP policy set, which includes WS-SecureConversation, if the scoping security context token is expired when the server is restarted then WS-ReliableMessaging cannot resend its messages and system messages are written to the log file stating the reliable messaging sequence was not secured using the correct security token. For example:
CWWSS7215E: Cannot get valid security context token from the cache.
To ensure the scoping security context token does not expire before WS-ReliableMessaging can recover and resend its messages, complete the following task: Configure WS-SecureConversation to work with WS-ReliableMessaging.
Subtopics
- WS-ReliableMessaging known restrictions
The main known restrictions that apply to the implementation of WS-ReliableMessaging in WAS.
Related
Configure WS-SecureConversation to work with WS-ReliableMessaging
WS-ReliableMessaging
Attaching and binding a WS-ReliableMessaging policy set to a web service application
Attaching and binding a WS-ReliableMessaging policy set to a web service application using wsadmin
Tune web services reliable messaging applications
Troubleshoot applications with HPEL
Related information:
WS-ReliableMessaging sequence reallocation