IBM Support

Learn more about Messaging bindings

Troubleshooting


Problem

Learn about different messaging bindings in WebSphere Process Server.

Resolving The Problem

Tab navigation




Table of contents

Learn more about Messaging bindings

1. Where can I find information on WebSphere MQ and MQJMS bindings?


2. Where can I find instructions to create a WebSphere MQ import or export?
3. What is the difference between two transport type- client and bindings?
4. Where should MQ_INSTALL_ROOT point to?
5. How does the WebSphere MQ or MQ/JMS import work in request response scenario?
6. What is a callback queue and can it be configured?
7. What are Data bindings and Data handler and where can I find more information on these?
8. What is RFHUTIL?
9. How can I use additional JMS providers?
10. Which WebSphere MQ headers are supported?
11. How can WebSphere MQ headers be manipulated?
12. Are WebSphere MQ headers being added to your message that your application cannot handle?
13. How can I handle poison messages?
14. How can I configure a WebSphere MQ import to execute in calling component’s transaction?
15. How can I configure a WebSphere MQ import to execute a different transaction then the calling component?



WebSphere Process Server Messaging Binding Information

1. Where can I find information on WebSphere MQ and MQJMS bindings?

WebSphere Process Server can connect to WebSphere MQ queues through two different messaging bindings, WebSphere MQ and MQ/JMS.
MQ/JMS bindings should be used when sending JMS Messages but using WebSphere MQ as a JMS provider. Details on each is located in the information center topics below:
WebSphere MQ Bindings
WebSphere MQ JMS Bindings


2. Where can I find instructions on how to create a WebSphere MQ import or export?

Refer to the following information center topics on how to create a WebSphere MQ import or export:
Generating an MQ Import Binding
Generating an MQ Export Binding

When you select the Specify JNDI name for pre-configured WebSphere MQ resources option, you have to create additional JNDI resources in the administrative console. Here are some guidelines:
  1. Create a WebSphere MQ connection factory using the WebSphere MQ Connection Factory Settings Knowledge Center topic.

    Typically, you need to provide values for the following fields. For the rest of the fields, the default values will work.

    Name
    JNDI Name (This should be the name provided in the bindings tab of the WebSphere MQ import)
    Queue Manager
    Host
    Port
    Channel (Typically this ends up being: SYSTEM.DEF.SVRCONN)
    Transport type (this needs to be changed to Client. MQ bindings does not support Bindings value)
    CCSID

  2. Create a queue using the WebSphere MQ Queue Settings Information Center topic.

    Typically, you need to provide values for the following fields. For the rest of the fields, the default values will work.

    Name
    JNDI Name (This should be the name provided in the bindings tab of the WebSphere MQ import)
    Base queue name
    Target Client needs to be set to WebSphere MQ

  3. Create a listener port using the Creating a new listener port Information Center topic.

    You need to fill in the following values:
    Name
    Connection factory JNDI name
    Destination JNDI name



3. What is the difference between two transport types (client and bindings)?

Read more about this subject in the WebSphere MQ and MQ JMS Features topic.

4. Where should MQ_INSTALL_ROOT point to?



A requirement for the MQ bindings to work properly is for the MQ_INSTALL_ROOT WebSphere environment variable to be set to the location of the libraries of a supported version of WebSphere MQ.
This value can point to an MQ Server or Client installation. WebSphere Process Server is installed with WebSphere MQ Java™ archive (JAR) files that are located in the <INSTALL_ROOT>/lib/WMQ directory.

You can find the information on the system requirements for WebSphere Process Server in the Detailed System requirements.



5. How does the WebSphere MQ or MQ/JMS import work in request response scenario?

The following information explains how the MQ/JMS Import works in this scenario:
  1. MQ/JMS Import sends the MQ/JMS Request message and in the same transaction it also puts a correlation message to an 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.



6. What is a callback queue and can it be configured?

The Callback queue is a queue where a correlation message is placed, which is used later to correlate the response to a particular request message. You can find the callback queue in request response MQ import. This is created by the install process and is named as:

<Module Name>/<MQ Import Name>_MQ_CALLBACK_D

You cannot change this queue name or configure it.

7. What are Data bindings and Data handlers and where can I find more information on these?



Data handlers and data bindings are used by the WebSphere MQ and MQ/JMS bindings to transform data from its native format into business objects, and vice versa, with data handlers being unique in that they are protocol neutral and can be used with different binding types.
You can find details on the data bindings and datahandlers delivered with WebSphere Process Server in the Data format transformation in imports and exports topic.

There are cases in which the delivered handlers and bindings do not meet a particular business need. In such cases, WebSphere Process Server allows for the use of custom data bindings and handlers in order to transform data from a particular format into a business object or from a business object to a particular format.

In such cases, guidance has been provided on how to create a custom data binding for the MQ import or export. The Example of custom WebSphere MQ data bindings Information Center topic discusses these MQ data bindings:

This is a sample of the methods that are required to be present in a custom data binding and their functions in the binding, as well as the order in which they are invoked. This sample can be leveraged as a starting point if the delivered data handlers and data bindings do not fit the business need.

8. What is RFHUTIL?



When you test WebSphere MQ imports and exports, various tools are available to use. One tool is provided by IBM "as is" and is called RFHUTIL. You can download it from the following DCF document:
WebSphere MQ SupportPac

There is a known issue when you use the client version of the tool (RFHUTILC.exe). This tool places an invalid XML character in the MQ message, which results in an error being thrown by the WebSphere MQ Import/Export. It is recommended to use just the RFHUTIL.exe tool or to find another 3rd party tool if this does not fit the requirements.

9. How can I use additional JMS providers?



Refer to the following links for detailed instructions on using additional JMS providers:
Using additional JMS Providers with WebSphere Process Server 6.0.2
Generic JMS Bindings

10. Which WebSphere MQ headers are supported?



Refer to the WebSphere MQ Headers Information Center topic for additional information.



11. How can WebSphere MQ headers be manipulated?

Refer to the following 3-part developerWorks article that discuss WebSphere MQ headers and how you can manipulate them:

Using WebSphere MQ Bindings, part 1
Using WebSphere MQ Bindings, part 2
Using WebSphere MQ Bindings, part 3


12. Are MQ headers being added to your message that your application can’t handle?

When the target client type is set to JMS, an additional header (MQRFH2) is put in the MQ message. If your target application is a native MQ application, then set this target client in connection factory to MQ.

13. How can I handle poison messages?

WebSphere Process Server utilizes the WebSphere Application Server message handling for this case.
How WebSphere Application Server handles poison messages


14. How can I configure a MQ import to execute in calling component’s transaction?



You need two configurations to include a WebSphere MQ import in the calling component’s transaction:
  1. The caller should asynchronously invoke the WebSphere MQ import. To ensure this scenario, it depends on what your calling component is. For example if your calling component is a POJO, you need to make sure you use the invokeAsync or invokeAsyncCallback method instead of the invoke method. Refer to the WebSphere Process Server interaction styles developerWorks article for other components.

  2. You need to make sure the reference qualifier asynchronous invocation is set to commit in the calling component. Refer to the following article for further information:
    Asynchronous processing in WebSphere Process Server




15. How can I configure a WebSphere MQ import to execute a different transaction then the calling component?

Because WebSphere MQ imports have an asynchronous implementation, if a caller component places a synchronous call to the WebSphere MQ import, SCA switches the call to an asynchronous call. This synch-over-async call starts a new transaction boundary and the WebSphere MQ import executes in a different transaction then the calling component's transation. Make sure the calling component is calling the MQ import in a synchronous manner. Refer to the WebSphere Process Server interaction styles developerWorks article to configure different components in WebSphere Process Server to make a synchronous call to WebSphere MQ import.

[{"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","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
23 June 2018

UID

swg21405260