MQReply node

Use the MQReply node to send a response to the originator of the input message.

The MQReply node is available in the following operation modes:
  • Developer
  • Application Integration Suite
  • Standard
  • Advanced
  • Express
  • Scale
For more information, see Operation modes.

WebSphere® MQ is available as a separate installation package, and your IBM® Integration Bus license entitles you to install and use WebSphere MQ with IBM Integration Bus. For more information, see Enhanced flexibility in interactions with WebSphere MQ and Installing WebSphere MQ.

This topic contains the following sections:

Purpose

The MQReply node is a specialized form of the MQOutput node that puts the output message to the WebSphere MQ queue that is identified by the ReplyToQ field of the input message header. If appropriate, you can define the queue as a WebSphere MQ clustered queue or shared queue.

The MQReply node uses the options that are set in the Report field in the MQMD. By default (if no options are set), the MQReply node generates a new MsgId field in the reply message, and copies the message ID from the input message to the CorrelId field in the reply message. If the receiving application expects other values in these fields, ensure that the application that puts the message to the message flow input queue sets the required report options, or that you set the appropriate options in the MQMD during message processing in the message flow; for example, use a Compute node to set the Report options in the message.

More information about the Report field is available in the Application Programming Reference section of the WebSphere MQ Version 7.5 product documentation online.

On distributed systems, you can configure the MQReply node to put a message to a WebSphere MQ queue on any local or remote queue manager. You can either specify the queue manager explicitly by setting the MQ Connection properties on the MQOutput node, or specify an MQEndpoint policy on the Policy tab.

If the integration node has a queue manager associated with it, then the MQ message flow node by default connects to that queue manager with server bindings. If you configure properties on the MQ Connection tab, then these properties will be used to connect to the specified queue manager. If you specify a MQEndpoint policy, then the values in the policy will be used instead of the values defined in the MQ Connection tab.

On z/OS®, only local connections to queue managers are supported. You must have a queue manager specified for the integration node, but you can also connect to other local queue managers on an MQReply node by using server bindings for the connection.

You can connect to a secured local or remote queue manager by using the Security identity property on the MQReply node to pass a user name and password to the queue manager. The identity is defined using the mqsisetdbparms command. You can use the Security identity property to provide the security credentials on local and client connections, but it is not available for client connections that use a client channel definition table (CCDT). You can also choose whether to use the SSL protocol when a client connection is made to a remote queue manager. Select the Use SSL property on the MQReply node to provide confidentiality on the client connection by using SSL. You can also set this property through an MQEndpoint policy. For more information about using security identities and SSL, see Connecting to a secured WebSphere MQ queue manager.

For information about how to configure the MQReply node for transactions, see Configuring MQ nodes for transactions.

The MQReply node is contained in the WebSphere MQ drawer of the palette, and is represented in the IBM Integration Toolkit by the following icon:

MQReply node icon

Using this node in a message flow

As an example of how to use this node, assume that you have written an application for a business that takes booking reservations. You can use this node when you receive an order from a customer. When the order message is processed, a response is sent to the customer acknowledging receipt of the order and providing a possible date for delivery.

Working with data in the WrittenDestination folder

After the message has been put to the reply queue, the WrittenDestination folder in the local environment tree is updated with the destination information. A WrittenDestination folder for an MQReply node has the following format:
WrittenDestination = (
   MQ  = (
       DestinationData = (
         queueName        = 'OUT'
         queueManagerName = 'MYQUEUEMANAGER'
         replyIdentifier = X'4d...2e'
         msgId           = X'3c...2c'
         correlId        = X'2a...00'
         GroupId         = X'3a...00'
         bindingType     = 'CLIENT' (CHARACTER)
         destinationQueueManager = 'QM1_REG1' (CHARACTER)
         queueManagerHostname    = 'MYQUEUEMANAGERHOSTNAME' (CHARACTER)
         listenerPortNumber      = 9000 (INTEGER)
         channelName             = 'MYCHANNELNAME' (CHARACTER)
      )
   )
)

Terminals and properties

When you add an MQReply node to a message flow, you can use the Properties view in the Message Flow editor to configure it. To display field help, click within a field, and then click the information icon that is displayed at the beginning of the field. All mandatory properties that do not have a default value defined are marked with an asterisk. For general configuration information see Configuring a message flow node. You can also use an MQ Service to configure the MQReply node, but this is supported only if a queue manager has been specified on the integration node. See Configuring an MQ node by using an MQ Service.

You can create and attach operational policies to control particular connection properties for this type of node at run time. For more information about policy, see Operational policy properties.

The following tables describe the node terminals and the node properties that you can set on a specified tab in the Properties view in the Message Flow editor. The column headed M indicates whether the property is mandatory (marked with an asterisk if you must enter a value when no default is defined).

Table of node terminals

Table 1. The terminals of the MQReply node
Terminal Description
In The input terminal that accepts a message for processing by the node.
Failure The output terminal to which the message is routed if a failure is detected when the message is put to the output queue.
Out The output terminal to which the message is routed if it has been successfully put to the output queue, and if further processing is required in this message flow.

Tables of node properties

Table 2. The Description properties of the node
Property M Default Description
Node name No The node type. The name of the node.
Short description No   A brief description of the node.
Long description No   Text that describes the purpose of the node in the message flow.
Table 3. The MQ Connection properties of the node
Property M Default Description
Connection No Local queue manager This property specifies how a connection is made to WebSphere MQ:
  • Select Local queue manager to make a local connection to a specified queue manager. If this option is selected, specify a queue manager in the Destination queue manager name property.

    If this property is set without a Destination queue manager name value, and no MQEndpoint policy is specified on the Policy tab, the MQ node uses the connection details of the queue manager specified for the integration node at run time. If no queue manager was specified for the integration node, then the message flow will not deploy.

  • Select MQ client connection properties to make a client connection to a remote queue manager by specifying the client connection details. If this option is selected, the following properties must also be specified:
    • Queue manager host name
    • Listener port number
    • Channel name
    • Destination queue manager name
  • Select Client channel definition table (CCDT) file to use client connection details that are specified in a client channel definition table (CCDT) file. If this option is selected, you must also specify the queue manager name.
    Specify the location of the CCDT file by running the mqsichangeproperties command, using the integration node registry object property mqCCDT. For example, enter the following command on one line:
    mqsichangeproperties IBNODE -o BrokerRegistry -n mqCCDT 
    -v "C:\Program Files (x86)\IBM\WebSphere MQ\Qmgrs\QM1\@ipcc\AMQCLCHL.TAB"
    For more information, see Integration node registry object parameter values.

    If you select Connect with CCDT and mqCCDT is not set, then a run time error occurs when IBM Integration Bus attempts to connect to the specified queue manager. The mqCCDT property applies to a specific integration node, so if you want to connect to different queue managers using CCDT, then you must define separate client connection channels in the CCDT file for each queue manager.

Valid values for mqsiapplybaroverride are SERVER, CLIENT, and CCDT.

Destination queue manager name No   This property specifies the name of the queue manager on which the message queues are defined.
Queue manager host name No   This property specifies the host name of the queue manager.

To achieve high availability, you can specify more than one host name by separating each host name with a comma. The first host name in the list is used as the primary host name. If the connection to the host name becomes unavailable, the next host name is used, and so on. For more information about high availability in WebSphere MQ, see the WebSphere MQ Version 7.5 product documentation online.

Listener port number No   This property specifies the port on which the queue manager is listening.
Channel name No   This property specifies the name of the channel that is used by the queue manager for sending and receiving messages.
Security identity No   This property specifies an identity that is used to provide username and password credentials for connections to a secured local or remote queue manager. It can be used to provide credentials on local and client connections, but it is not available for client connections that are configured using a client channel definition table (CCDT).

The identity is defined using the mqsisetdbparms command. When you set the security identity by using this command, ensure that it is prefixed by mq::. Do not include the prefix when setting the security identity on the node or in the MQEndpoint policy.

For more information, see Connecting to a secured WebSphere MQ queue manager.

Use SSL No No This property controls whether the SSL protocol is used when a client connection is made to a remote queue manager. Select this property to provide confidentiality on the client connection by using SSL. You can also set this property through an MQEndpoint policy.

You can use SSL for client connections that are configured using either the MQ client connection properties or a client channel definition table (CCDT).

If you select Use SSL and specify the connection details through MQ client connection properties, you can also set the following properties:
  • SSL peer name
  • SSL cipher specification
The SSL peer name and SSL cipher specification properties are not used for client connections that use a client channel definition table (CCDT); you can specify this information in the CCDT.
If you select the Use SSL property, you must also specify the location of the SSL key repository. The SSL key repository is created using the WebSphere MQ GSkit, and it holds the required private and public certificates appropriate to the chosen certificate policy for the queue manager. You specify the key repository location by using the mqsichangeproperties command; it is specified as the SSL key repository full file path minus the .kdb file extension. For example, if the SSL key repository is located in C:\SSL\key.kdb, you set it by using the following command :
mqsichangeproperties IB10NODE -o BrokerRegistry -n mqKeyRepository -v C:\SSL\key

The SSL key repository password stash file key repository file name.sth must be located in same folder location as the key repository. The stash file is created using WebSphere MQ GSKit.

Use the MQSC REFRESH SECURITY command to pick up the changes to the SSL key repository.

For more information, see Connecting to a secured WebSphere MQ queue manager.

SSL peer name No   This property specifies the name that is passed to the remote queue manager when making the client connection; there must be a positive match for the connection to succeed.

You can specify this property if the Use SSL property is selected and the client connection details are specified through MQ client connection properties. It is not used for client connections that use a client channel definition table (CCDT); you can specify this information in the CCDT.

SSL cipher specification No   This property specifies the name of the symmetric key cryptography algorithm through which the remote queue manager is secured.

You can specify this property if the Use SSL property is selected and the client connection details are specified through MQ client connection properties. It is not used for client connections that use a client channel definition table (CCDT); you can specify this information in the CCDT.

Configure the connection details to enable a message to be retrieved from a queue on a local or remote queue manager. Values that are set on the MQ Connection tab are used at run time, unless overridden by a value in an MQEndpoint policy that is specified on the Policy tab.

Table 4. The Advanced properties of the node
Property M Default Description
Segmentation allowed Yes Cleared If you select this check box, WebSphere MQ breaks the message into segments in the queue manager.
Persistence mode Yes Automatic This property controls whether the message is put persistently.
  • If you select Automatic (the default), the message persistence is determined by the properties of the incoming message, as set in the MQMD (the WebSphere MQ message descriptor).
  • If you select Yes, the message is put persistently.
  • If you select No, the message is put non-persistently.
  • If you select As Defined for Queue, the message persistence is set as defined for the WebSphere MQ queue. The node specifies the MQPER_PERSISTENCE_AS_Q_DEF option in the MQMD.
Transaction mode Yes Automatic This property controls whether the message is put transactionally.
  • If you select Automatic (the default), the message transactionality is derived from the way that it was specified at the input node.
  • If you select Yes, the message is put transactionally.
  • If you select No, the message is put non-transactionally.

For more information, see Configuring MQ nodes for transactions.

Table 5. The Validation properties of the node
Property M Default Description
Validate No Inherit This property controls whether validation takes place. Valid values are None, Content and Value, Content, and Inherit.
Failure Action No Exception This property controls what happens if validation fails. You can set this property only if you set Validate to Content or Content and Value. Valid values are User Trace, Local Error Log, Exception, and Exception List.

For a full description of these properties, see Validation properties.

Table 6. The Policy properties of the node
Property M Default Description
Policy URL No   Set the value of this field to the location of an MQEndpoint policy to use the connection details defined in that policy for this MQ node.

If an MQEndpoint policy is specified, the property values that are set in the policy are used at run time. The properties that are set in the policy override the corresponding properties that are set on the MQ Connection tab. If an MQEndpoint policy is not specified, then property values that are set on the MQ Connection tab are used.

If no MQEndpoint policy is specified, and the Connection property on the MQ Connection tab is set to Local queue manager with no queue manager specified (the default state), then the MQ node uses the connection details for the queue manager that was specified for the integration node. If no queue manager was specified for the integration node, then the message flow will not deploy.

If an MQEndpoint policy is specified, then any equivalent properties that are set on the MQ Connection tab are ignored at run time. For more information about operational policies that can be applied to MQ nodes, see MQEndpoint policy.

Table 7. The Monitoring properties of the node
Property M Default Description
Events No   Events that you have defined for the node are displayed on this tab. By default, no monitoring events are defined on any node in a message flow. Use Add, Edit, and Delete to create, change, or delete monitoring events for the node; see Configuring monitoring event sources by using monitoring properties for details.

You can enable and disable events that are shown here by selecting or clearing the Enabled check box.

Configurable properties

The following table describes the node properties that are configurable (you can change the property value when you add the message flow to the BAR file for deployment by using the mqsiapplybaroverride command). The table maps the message flow node properties to the corresponding properties of the mqsiapplybaroverride command.

For more information about configurable properties, see Configurable properties in a BAR file.

Table of configurable properties

Table 8. List of node properties that can be configured using the mqsiapplybaroverride command
Property mqsiapplybaroverride command property
Connection type connection
Destination queue manager name destinationQueueManagerName
Queue manager host name queueManagerHostname
Listener port number listenerPortNumber
Channel name channelName
Security identity securityIdentity
Use SSL useSSL
SSL peer name SSLPeerName
SSL cipher specification SSLCipherSpec
Validate validateMaster
Policy URL policyUrl

Operational policy properties

You can create and attach MQEndpoint policies to MQ nodes to control the behavior of the node at run time. The following table maps the operational properties of the message flow node to the corresponding properties of the node policy document. Operational properties are properties that you can control the value of at run time by using an operational policy.

If you set the ccdt property in the policy document to use a CCDT file, you must also run mqsichangeproperties to specify the CCDT file path. Use the following form, where file_path represents the path to the CCDT file:
mqsichangeproperties IBNODE -o BrokerRegistry -n mqCCDT -v file_path

For more information about operational policy and how to use a policy in a message flow, see Operational policy and MQEndpoint policy.

Table of operational properties

Table 9. List of node properties that can be controlled at run time by using an MQEndpoint policy
Property Policy document property
Connection type connection
Destination queue manager name destinationQueueManagerName
Queue manager host name queueManagerHostname
Listener port number listenerPortNumber
Channel name channelName
Security identity securityIdentity
Use SSL useSSL
SSL peer name SSLPeerName
SSL cipher specification SSLCipherSpec