WebSphere MQ protocol

WebSphere MQ enables application programs to communicate with each other using messages and queues (asynchronous messaging). This provides assured, once-only delivery of messages. The application programs can be separated. The program sending a message can continue processing without having to wait for a reply from the receiver. If the receiver is temporarily unavailable, then the message can be forwarded at a later time.

Note: The WebSphere MQS protocol driver requires installation of the IBM WebSphere MQ software. This lets the engine interface with IBM’s WebSphere MQ software.

Before applications can send any messages, a Queue Manager and queues must be created. Queues are managed by the Queue Manager. The Queue Manager provides messaging services for the applications and processes the MQI (Message Queue Interface) invocations they issue. The MQI is a set of invocations that applications use to ask for the services of a Queue Manager. The Queue Manager ensures that messages are put on the correct queue or that they are routed to another Queue Manager.

Configure the Websphere MQ queues using tools provided by IBM.

Use Network Configurator (hcinetconfig) to name the Queue Manager, inbound queue, and outbound queue.

The Queue Manager may be on the local machine if using Websphere MQ, or on another machine if MQClient is installed on the local machine. This Queue Manager must be previously created and started. The command server must also be running for that Queue Manager.

This table shows the guidelines for the WebSphere MQ protocol:

Guideline Description
Queue Manager You must name the Queue Manager using IBM naming conventions, with a maximum of 48 characters.
Queue You must name the queues using IBM naming conventions, with a maximum of 48 characters.
Channel A channel is used for accessing Queue Managers on other machines through MQClient.

You must:

  • Name the channel using IBM naming conventions.
  • Define it in the Queue Manager on the server.
  • Set the channel type to SVRCONN.
  • Set the MCAUSER to user@domain.

If required, then you can specify that a local queue is opened for both Getting and Putting.

Remote queues are opened for Putting only.

The Queue Manager returns an object handle if the open request is successful. The application specifies this handle, together with the connection handle, when it issues a PUT or a GET call. This ensures that the request is carried out on the correct queue.

You can change certain message descriptor fields using Network Configurator and Tcl procedures.

See Websphere MQ configuration details.

Queue Manager pane

This table shows the parameters for the Queue Manager name:

Parameter Description
Queue Manager Name Specify the Queue Manager name to which the system connects.
Commit Interval Specify the number of messages to be read and processed before the Queue Manager commits them from the inbound queue. The minimum is 1.

Fewer calls are made to process messages when Maximum Messages Per Read (on the MQ Inqueue Advanced Properties dialog box) and Commit Interval have a value greater than 1.

If anything happens to the thread between the time when a message is read and when it is committed, then the message is redelivered. It is redelivered to when the thread comes back up.

If Commit Interval is greater than the number of messages read, then this could result in messages not being committed for a longer time period.

Note: Commit Interval can increase performance, but should be used with care in cases where redelivery of a message is unacceptable.
Read Interval Specify the length of time, in seconds, to wait before reading a message from the inbound queue or from the reply queue.

Inbound pane

This table shows the parameters for the Inbound pane:

Parameter Description
Enable inbound queue Select this to open and retrieve messages from the queue. Otherwise, the inbound queue is ignored.
Queue Name Specify the inbound queue name from which messages are opened and retrieved.
Advanced Click to open the MQ Inqueue Advanced Properties dialog box.
Note: This option is available only when Enable inbound queue is selected.

See MQ Inqueue Advanced Properties dialog box.

Outbound pane

This table shows the parameters for the Outbound pane:

Parameter Description
Enable outbound queue Select this to open and place messages on the queue. Otherwise, the outbound queue is ignored.
Queue Name Specify the outbound queue name from which messages are opened and placed.
Advanced Click to open the MQ Outqueue Advanced Properties dialog box.
Note: This option is available only when Enable outbound queue is selected.

See MQ Outqueue Advanced Properties dialog box.

Client Information pane

This table shows the parameters for the Client Information pane:

Parameter Description
Server Name Specify the server name containing the MQS server. UNIX server names are case-sensitive.

If this is blank, then the thread works as a server.

If this is filled with the host name to which this thread is to connect, then the thread works as a client.

Channel Name Specify the channel name that was previously created on the MQS server.
Admin Queue Name Specify the queue name. If left blank, then the engine uses the default value (SYSTEM.ADMIN.COMMAND.QUEUE).
User ID/Password
Port Number Specify the port number to use when connecting to the MQS server. This field is optional and defaults to 1414 if left blank. If a port number other than 1414 is specified, then a listener must be started on the server using this port number as an argument. Click List to open the Ports List dialog box to browse an alias list, where you can assign a port with an alias.
Time Out Specify a time out value, in the range of 1 to 60. If left blank, then the engine uses the default value (1).
Note: This information applies only to platforms supporting the MQS Client.
SSL Click Configure to open the MQS SSL/TLS Properties dialog box. See MQS SSL/TLS Properties dialog box.

Start-up Procedures pane

Click Edit to open the TPS Editor. Use this to select the Tcl procedures to run when the thread starts. This is a TPS (Tcl Procedure Stream). Use it to trade messages with the remote end.