|
|||||
|
||||||
Related Syntax | Other Library Functions |
function |
mq-put |
Library: Interfaces, MQSeries access (OMMQI)
Include: ommqi.xin |
define external function mq-put object value mq-object object message-descriptor value mq-message-descriptor MQMD put-options value mq-put-message-options MQPMO message value stream message
Argument definitions
Use mq-put to place a message on one or more queues.
You must include the following line at the beginning of your OmniMark program:
include "ommqi.xin"
The MQSeries queue represented by object must be open (else external exception OMMQI0013)
This function corresponds with the IBM MQSeries function MQPUT. See the IBM MQSeries documentation for MQPUT for more information.
The queue parameter maps to both the Hconn and Hobj parameters of MQPUT.
The BufferLength parameter in the IBM MQSeries C interface is not included in the OmniMark MQSeries interface as it is calculated from the message parameter.
The CompCode and Reason parameters of MQPUT are integrated into the OMMQI error handling.
Setting of MQPMR structures inside the the MQPMO (mq-put-message-options) structure is not supported in this version of the OmniMark MQSeries interface.
Put a message on a single queue.
process local mq-connection a-connection local mq-object a-object local stream od-fields variable local mq-object-descriptor mqod local stream md-fields variable local mq-message-descriptor mqmd local stream pmo-fields variable local mq-put-message-options mqpmo ; Connect to the default queue-manager set a-connection to mq-connect ; Set up the MQOD structure (putting to queue default) set new od-fields {"ObjectName"} to "default" mq-set-object-descriptor mqod to od-fields ; open the queue set a-object to mq-open connection a-connection object-descriptor mqod options MQOO_OUTPUT ; set up the MQPMO structure set new pmo-fields {"Options"} to "d" % (MQPMO_NEW_MSG_ID union MQPMO_NEW_CORREL_ID) mq-set-put-message-options mqpmo to pmo-fields ; set up the MQMD structure set new md-fields {"Format"} to MQFMT_STRING mq-set-message-descriptor mqmd to md-fields ; put the message on the queue mq-put object a-object message-descriptor mqmd put-options mqpmo message "A simple mqput message"
Put a message on multiple queues using a distribution list
local mq-queue-manager a-manager local mq-queue a-queue local mq-object-descriptor mqod local stream od-fields variable local stream or-shelf variable local mq-object-record object-records variable local mq-response-record error-records variable local stream md-fields variable local mq-message-descriptor mqmd local stream pmo-fields variable local mq-put-message-options mqpmo ; Need version 2 MQOD for distribution lists set new od-fields {"Version"} to "2" mq-set-object-descriptor mqod to od-fields ; Add a object-record to the or-shelf set new or-shelf {"ObjectName"} to "default" new object-records mq-set-object-record object-records to or-shelf ; Add another object-record to the objects-records shelf set or-shelf {"ObjectName"} to "postcard" new object-records mq-set-object-record object-records to or-shelf ; insert the object-records shelf into the MQOD mq-set-mqor-of-mqod object-records of mqod ; connect to default queue-manager set a-manager to mq-connect ; Open using the distribution list previously defined set a-queue to mq-open manager a-manager object-descriptor mqod options MQOO_OUTPUT ; Set up the MQPMO structure set new pmo-fields {"Options"} to "d" % (MQPMO_NEW_MSG_ID union MQPMO_NEW_CORREL_ID) mq-set-put-message-options mqpmo to pmo-fields ; Set up the MQMD Structure set new md-fields {"Format"} to MQFMT_STRING mq-set-message-descriptor mqmd to md-fields ; Put the message to both queues mq-put queue a-queue message-descriptor mqmd put-options mqpmo message "A multi-queue message"