IBM MQ Publish
The IBM MQ Publish activity publishes a message to a dynamic or predefined topic.
The activity is capable of sending any of the four message types described in the IBM MQ Put activity. The capabilities of the activity are determined by the configuration, with some runtime behaviors controlled by the input schema. The type of the message being sent might determine what fields are applicable for the publish operation, for example, request messages are incompatible with report options. Even though this is a pub/sub type of activity, the report and reply-to queues are real queues, not topics.
In IBM MQ, a topic is defined as a string of characters starting with a forward slash (/) and can contain many topic nodes to the right. IBM MQ supports a mechanism for separating administratively defined topic strings from application-defined ones. This is exposed on the publish activity by the Destination field and the Topic Dynamic field. The intent is that administratively defined portions of the topic string are represented by selecting a permanently defined topic for the first part of the topic string and concatenating the dynamic portion to the right. This way an application can be deployed in several environments without naming conflicts.
There is no difference between the message object published by this activity from the one sent by the Put activity.
General
The General tab of the Publish activity contains the following fields:
Advanced
The Advanced tab of the Publish activity contains the following fields:
Input
Activity Pooling
The Activity Pooling tab allows the activity to pool all the MQ resources associated with the publish activity at the process level.
The Activity Pooling tab contains the following fields:
Field | Global Variable | Description |
---|---|---|
Pool Activity | N | Select the
Pool Activity checkbox to activate pooling for the client objects used by this activity. Selecting this option causes pooling to be done at a higher level than merely pooling the connection. All destinations used by the activity are kept open and the connection resource specified are not pooled in the usual way even if that resource has pooling enabled. This option is used when the server to which you are connected experiences very high latency such that opening, closing, and pooling of connections cause unacceptable performance degradation.
The primary consideration for choosing pooling parameters is the number of available connections to the queue manager. Choose values that do not create unnecessary resource consumption in the queue manager, and leave available connections for other applications (including other pooled connections and activities, remember that the application might be deployed on multiple engine instances). |
Pool Max | Y | Determines the maximum number of connections in the pool. When this limit is reached, subsequent activities fail with the following message:
"Activity Pool is exhausted: [Timeout waiting for idle object] Either enlarge the pool, allow it to grow, or increase the blocking time." |
Pool Max Idle | Y | Determines the maximum number of idle connections in the pool. When the number of unused connections reaches this number, the idle connections are disconnected and closed, freeing resources on the server. Amounts over the Max Connections values are ignored. |
Exhausted Action | N | Select one of the following options:
● FAIL - The activity fails immediately after the pool is exhausted. ● BLOCK - The activity waits for the "Pool Wait" interval before failing. If an MQ client is available before the timeout, the activity acquires it. ● GROW - The pool grows past its maximum parameters. |
Pool Wait | Y | If exhausted action is set to "BLOCK", the pool waits for the "Pool Wait" interval for an activity to become available before failing. |
The following table lists the input items for the Publish activity:
Output
The following table lists the output items for the Publish activity:
Fault
The Fault tab lists exceptions that occur in the Publish activity:
Error Schema Element | Data type | Description |
---|---|---|
msg | String | The ActiveMatrix BusinessWorks Plug-in for IBM MQ error message. |
msgCode | String | The ActiveMatrix BusinessWorks Plug-in for IBM MQ error code. |
mqCompCode | String | If the message originates as an IBM MQ API exception, then that exception's completion code is here. |
mqReasonCode | String | If the message originates as an IBM MQ API exception, then that exception's reason code is here. |
mqErrorCode | String | If the message originates as an IBM MQ API exception, then that exception's error code is here. |