IBM Support

Troubleshooting Messaging bindings problems

Troubleshooting


Problem

This document contains common questions and answers that are related to Messaging bindings.

Resolving The Problem

Tab navigation



Table of contents

Troubleshooting Messaging bindings problems

1. What traces are required for troubleshooting bindings problems?

2. Where can I find the changes made in my WebSphere MQ header fields in Service Message Objects(SMO) reflected in the outbound WebSphere MQ message?


3. I am receiving the exception below, what custom properties do I need to define?
com.ibm.websphere.sca.ServiceRuntimeException: MQ channel exit has not been invoked, ensure Connection Factory has Custom Properties set for exits.

4. Can two WebSphere MQ exports or imports point to the same queue?

5. If the WebSphere MQ goes down, would the listener port re-connect to the WebSphere MQ automatically when it is available again?

6. How can I dynamically change the JNDI resources for a WebSphere MQ import without the need to re-deploy the application?

7. I am seeing the exception below, what does this mean?
com.ibm.websphere.sca.ServiceRuntimeException: No message is received from callback queue with
selector=callbackID='CALLBACKMESSAGE_ID:....


8. Even though I have received a response for a request that was sent out, I see the error message below. Why am I seeing this error and what are the possible solutions?
com.ibm.websphere.sca.ServiceRuntimeException: No message is received from callback queue with
selector=callbackID='CALLBACKMESSAGE_ID:...


9. My listener port is stopping due to an invalid or “bad” message and further processing does not take place. How do I configure the listener port to not stop and continue processing?



WebSphere Process Server Messaging Bindings Questions and Answers

1. What traces are required for troubleshooting bindings?


For all messaging bindings, use the following trace setting: SCA.JMS=all

2. Where can I find the changes made in some of the WebSphere MQ headers fields in SMO reflected in the outbound WebSphere MQ message?



Not all fields are propagated in the outbound message. You can find a list of the fields that are not passed on in the Using WebSphere MQ bindings in WebSphere ESB, Part 1: Manipulating MQ headers in WebSphere ESB using the XSL transformation primitive and WebSphere Integration Developer developerWorks article.

3. I am receiving the exception below, what custom properties do I need to define?


com.ibm.websphere.sca.ServiceRuntimeException: MQ channel exit has not been invoked, ensure Connection Factory has Custom Properties set for exits.

Refer to the Service Component Architecture modules and WebSphere MQ information center topic, which discusses the custom properties that you need to set.

You can find information on channel exits in the Using the WebSphere MQ messaging provider in WebSphere Application Server V7, Part 2: Using channel exits developerWorks article.

4. Can two WebSphere MQ exports or imports point to the same queue?



Multiple imports or exports (or applications) using the same queue is not supported. It cannot be guaranteed which one would receive the response. There should be separate queues for each import and export.

One Import/Export per MQ queue configuration is required. This configuration is also true in a golden or silver topology cluster environment. In this environment, the callback queue for the Import is remote from the application and all cluster members have visibility of the callback information.




5. If WebSphere MQ goes down, would the listener port re-connect to WebSphere MQ automatically when it is available again?

If a WebSphere MQ resource goes down within the retry limits (the default is 5 times) then the listeners will reconnect. For example, if you try to put a message once and WebSphere MQ has gone down but then comes up on the 2nd, 3rd or 4th retry, it should reconnect. However, if the retry limit has been reached then after the listeners finish retrying, they are stopped and need to be started again manually.

6. How can I dynamically change the JNDI resources for a WebSphere MQ import without the need to re-deploy the application?



Follow the below steps:
  1. Log into the administrative console.

  2. Expand the Applications section.

  3. Select SCA modules.

  4. Select your module in question.

  5. On the right side of the page, expand imports, find the import you are referring to and select it.

  6. Expand 'Bindings'.

  7. Click MQ.

  8. Make changes to the JNDI and click apply.

  9. Save.



7. I am seeing the below exception, what does it mean?
com.ibm.websphere.sca.ServiceRuntimeException: No message is received from callback queue with
selector=callbackID='CALLBACKMESSAGE_ID:....

The previous exception means that an MQ import is receiving a response message for a request that it did not send a request message for.

8. Even though I have received a response for a request that was sent out, I see the error message below. Why am I seeing this error and what are the possible solutions?


com.ibm.websphere.sca.ServiceRuntimeException: No message is received from callback queue with selector=callbackID='CALLBACKMESSAGE_ID:....

See the following process that explains how the MQ/JMS Import works:
  1. MQ/JMS Import sends the MQ/JMS Request message and in the same transaction it also puts a correlation message to a Service Integration Bus (SIBus) Queue.

  2. MQ/JMS Import response listener receives the MQ/JMS response message off the response queue and, at this point, it attempts to get the correlation message off the SIBus queue.

  3. The response listener waits for a maximum of 6 seconds for the correlation message to become available before throwing the exception that you see.

  4. The MQ/JMS response message is then subject to the MQ retry and backout configuration as you have defined.

Therefore, a possible cause for this error is a delay in the SIBus message being committed and becoming available. This scenario might be caused by performance issues of the underlying database used by SIBus.

To handle such situations you have the following options:
  1. For the MQ/JMS Import, JMS callback destination has the default of persistence (Application). The MQ/JMS Import sends the correlation message as PERSISTENT; therefore, the message is persistent.


    MQ/JMS Callback Connection Factory uses the default Quality of Service for persistent, so it maps persistent to "Reliable Persistence" for SIBus.


    You can try changing this to "Assured Persistent," which drives the persistence of the message on the same thread as the commit call.

  2. Increase the retry values on the WebSphere MQ backout threshold and listener port to optimum values. In this case, the message is tried more than once before being sent to the backout queue.

  3. Tune the database used by SIBus to avoid any performance issue.



9. My listener port is stopping due to an invalid or “bad” message and further processing does not take place. How do I configure the listener port to not stop and continue processing?

These messages are known as poison messages. Refer to the How WebSphere Application Server V6 handles poison messages developerWorks article, which discusses how to handle these messages.

[{"Product":{"code":"SSQH9M","label":"WebSphere Process Server"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"Messaging","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"6.2;6.1","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
23 June 2018

UID

swg21405299