![]() |
|
||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|||||
|
|
||||||
| Related Syntax | Other Library Functions | |||||
| function |
mq-put1message |
|
Library: Interfaces, MQSeries access (OMMQI)
Include: ommqi.xin |
define function mq-put1message
connection value mq-connection connection
object-descriptor value mq-object-descriptor MQOD
message-descriptor value mq-message-descriptor MQMD
put-options value mq-put-message-options MQPMO
message value stream message
Argument definitions
Use mq-put1message to open a queue object or distribution list, send a message and close the queue object.
You must include the following line at the beginning of your OmniMark
program:
include "ommqi.xin"
The manager represented by connection must be connected (else external exception OMMQI0011)
This function corresponds function MQPUT1 in the MQSeries API . See the IBM MQSeries documentation for MQPUT1 for more information.
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 one message on a single queue.
process
local mq-connection a-connection
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 queue-manager
set a-connection to mq-connect
; Set up the object-descriptor structure
set new od-fields {"ObjectName"} to "default"
mq-set-object-descriptor mqod to od-fields
; Set up the put-message-options 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 message-descriptor structure
set new md-fields {"Format"} to MQFMT_STRING
mq-set-message-descriptor mqmd to md-fields
; Put 1 message on a queue
mq-put1message connection a-connection
object-descriptor mqod
message-descriptor mqmd
put-options mqpmo
message "A test message for mq-put1message"
Put a message on multiple queues using a distribution list
local mq-connection a-connection
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-connection to mq-connect
; Set up the put-message-options 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 message-descriptor structure
set new md-fields {"Format"} to MQFMT_STRING
mq-set-message-descriptor mqmd to md-fields
mq-put1message connection a-connection
object-descriptor mqod
message-descriptor mqmd
put-options mqpmo
message "mq-put1 multi-queue test message"