WS-ReliableMessaging troubleshooting tips
Tips for troubleshooting your WS-ReliableMessaging configuration.
To help you identify and resolve problems with WS-ReliableMessaging, you can use the WebSphere® Application Server trace and logging facilities. If you are using Eclipse-based tools, you 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.
- 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
A list of the main known restrictions that apply when using WS-ReliableMessaging is provided in WS-ReliableMessaging known restrictions.
WebSphere Application Server 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 WebSphere Application Server messages, indexed by message prefix. For each message there is an explanation of the problem, and details of any action that you can take to resolve the problem.
- If a sequence is reallocated, you might see more sequences than you expect
Se o sistema de mensagens confiável está executando em um cluster, ao examinar o estado do tempo de execução de sequências de entrada e de saída, você vê múltiplas entradas para cada sequência
Ao examinar o estado do tempo de execução das sequências de entrada e saída, talvez você veja várias entradas para cada sequência
- Runtime errors occur when you migrate persisted WS-ReliableMessaging messages from Version 6.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
- Reliable messaging is interrupted because a server is unavailable
- Socket timeout errors are received when running multiple reliable messaging client applications in a cluster
- A message is not recovered after a server becomes unavailable
- An exception message states that the security context token is not valid
A servant region experiences a timeout abend when you are using a managed quality of service
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.
![[AIX Solaris HP-UX Linux Windows]](../images/dist.gif)
![[IBM i]](../images/iseries.gif)
Se o sistema de mensagens confiável está executando em um cluster, ao examinar o estado do tempo de execução de sequências de entrada e de saída, você vê múltiplas entradas para cada sequência
Isso acontece porque, embora o sistema de mensagens confiável seja ligado a apenas um mecanismo do sistema de mensagens em um cluster, o painel do tempo de execução está calculando e exibindo as informações de sequência uma vez para cada membro de cluster. Ignore as entradas duplicadas. Observe que as pequenas diferenças nas estatísticas sendo exibidas para cada entrada duplicada se devem ao fato de as entradas serem criadas sequencialmente enquanto a sondagem das mensagens continua.
![[z/OS]](../images/ngzos.gif)
Ao examinar o estado do tempo de execução das sequências de entrada e saída, talvez você veja várias entradas para cada sequência
Isso acontece porque, embora o sistema de mensagens confiável seja ligado a apenas um mecanismo do sistema de mensagens, o painel do tempo de execução está calculando e exibindo as informações de sequencia uma vez para cada região do servidor. Ignore as entradas duplicadas. Observe que as pequenas diferenças nas estatísticas sendo exibidas para cada entrada duplicada se devem ao fato de as entradas serem criadas sequencialmente enquanto a sondagem das mensagens continua.
Runtime errors occur when you migrate persisted WS-ReliableMessaging messages from Version 6.1.0.9 or 6.1.0.11
If you are migrating from WebSphere Application Server Version 6.1, and you are using Version 6.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.
- Navigate to the Coleta de Seqüência de Entrada runtime panel for your reliable messaging application.
- Select all the inbound sequences, then click delete sequence and messages to delete the sequences.
- Navigate to the Coleta de Seqüência de Saída 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 you use reliable messaging with a managed quality of service, you might see the following exception message when your application server starts:
CWSIT0019E: No suitable messaging engine is available on bus yourBus that matched the specified connection properties
In a network deployment environment, this can occur because the messaging engine is on an application server or cluster member that has started later than the server that hosts your reliable messaging application. In this case you need do nothing but wait; reliable messaging will keep trying to connect until the messaging engine becomes available.
- Check that the specified messaging engine and service integration bus exist.
- Check the system out log to ensure that the server that hosts the messaging engine has started.
A client application is unable to invoke a reliable messaging enabled web service
- 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 you have configured a valid binding to a service integration bus and messaging engine, and that the messaging engine is running. For more information, see Conectando e Ligando um Conjunto de Políticas WS-ReliableMessaging a um Aplicativo de Serviço da Web Usando o Console Administrativo. or Conectando e Ligando um Conjunto de Políticas WS-ReliableMessaging a um Aplicativo de Serviço da Web Usando a Ferramenta wsadmin.
- There are not too many applications sharing a single messaging
engine. Note: Quando muitos aplicativos usarem o mesmo mecanismo do sistema de mensagens, isso poderá afetar o desempenho. Os fatores que devem ser levados em consideração incluem o número de aplicativos que já estão ligados ao mecanismo do sistema de mensagens, o uso de CPU e o rendimento de processamento da mensagem. Para melhorar o desempenho para uma única configuração do servidor, crie um novo mecanismo do sistema de mensagens para ligar ao seu aplicativo.
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: Especificações e Padrões Suportados.
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
.- Check that the policy sets are correctly applied. Specifically, check that the destination has reliable messaging correctly enabled.
- Check the logs for server-side problems.
- For the managed persistent quality of service, check that the associated messaging engine is available.
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
.The most common reason is that you are working in a clustered environment but your server-side policy set specifies the unmanaged non-persistent quality of service. For example: The WS-I RSP default policy set specifies the unmanaged non-persistent quality of service. To use reliable asynchronous messaging in a clustered environment, you must use a managed quality of service to enable the cluster members to correlate reliable messaging state. To do this, either use the WS-I RSP ND default policy set, or modify your custom policy set so that the WS-ReliableMessaging policy specifies a managed quality of service, and an associated binding to a service integration bus and messaging engine. For information about how to do this, see Configurando um conjunto de políticas WS-ReliableMessaging usando o console administrativo and Conectando e Ligando um Conjunto de Políticas WS-ReliableMessaging a um Aplicativo de Serviço da Web Usando o Console Administrativo..
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 you 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 you have attached a managed policy set to your application, and used the default bindings (which do not support the managed qualities of service). You must create a new binding for your application that specifies a service integration bus and messaging engine to support the managed qualities of service. To do this, see Conectando e Ligando um Conjunto de Políticas WS-ReliableMessaging a um Aplicativo de Serviço da Web Usando o Console Administrativo..
Reliable messaging is interrupted because a server is unavailable
Clustering offers maximum protection against servers becoming unavailable. It provides highly available service endpoints, and (through the service integration bus) high availability of the reliable messaging layer.
For more information about configuring high availability for web services and messaging engines, see Balanceando Cargas de Trabalho and Incluindo um mecanismo do sistema de Mensagens em um Cluster.
Socket timeout errors are received when running multiple reliable messaging client applications in a cluster
When many applications use the same messaging engine, it can impact performance and in some cases lead to timeout errors.
For more information about configuring high availability for web services and messaging engines, see Balanceando Cargas de Trabalho and Incluindo um mecanismo do sistema de Mensagens em um Cluster.
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 that 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 that they were sent" as described in Configurando a Política WS-ReliableMessaging.
An exception message states that 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 that the security context token is not valid.
CWWSS7215E: Cannot get valid security context token from the cache.
To ensure that the scoping security context token does not expire before WS-ReliableMessaging can recover and resend its messages, complete the following task: Configurando o WS-SecureConversation para Trabalhar com o WS-ReliableMessaging.
![[z/OS]](../images/ngzos.gif)
A servant region experiences a timeout abend when you are using a managed quality of service
A timeout abend could be caused by the value of the sib.wsrm.tokenLockTimeout custom property being set too high. This property is set on the messaging engine that is specified on the WS-ReliableMessaging policy binding. The value should be less than the amount of time that the control region waits before ending an inactive servant region. Refer to the Propriedades customizadas de integração de serviços topic for more information about this property.