PFB the updated code for the MQ program.
MQCRTMH --> Call and reason code is successful
MQSETMP --> Getting reason code 2442
MQPUT --> Call and reason code is successful
** Declaration part looks like the below.
01 MQCRTMH-CRTMSGHOPTS.
COPY CMQCMHOV.
01 HMSG PIC S9(18).
01 MQSETMP-SETMSGOPTS.
COPY CMQSMPOV.
01 MQSETMP-NAME.
COPY CMQCHRVV.
01 MQSETMP-PROPDESC.
COPY CMQPDV.
MQSETMP-TYPE PIC S9(9) BINARY.
MQSETMP-VALUELENGTH PIC S9(9) BINARY.
MQSETMP-VALUE PIC X(5).
Coding logic.
CALL 'MQCRTMH' USING HCONN
MQCRTMH-CRTMSGHOPTS
HMSG
MQ-COMPCODE
MQ-REASON --> Call is successful
SET MQCHARV-VSPTR TO ADDRESS OF MQSETMP-NAME
MOVE LENGTH OF MQSETMP-NAME TO MQCHARV-VSLENGTH
MOVE 'Type1' TO MQSETMP-VALUE
CALL 'MQSETMP' USING HCONN
HMSG
MQSETMP-SETMSGOPTS
MQSETMP-NAME
MQSETMP-PROPDESC
MQSETMP-TYPE
MQSETMP-TYPELENGTH
MQSETMP-VALUE
MQ-COMPCODE
MQ-REASON ---> 2442 is the reason code
MOVE 8 TO MQMD-MSGTYPE
MOVE 'MQSTR ' TO MQMD-FORMAT
MOVE 'MQHRF2 ' TO MQMD-FORMAT
MOVE '1208' TO MQRFH-NAMEVALUECCID
MOVE '273' TO MQRFH-ENCODING
MOVE 'TEST MESSAGE' TO MQ-DATA
CALL 'MQPUT' USING HCONN
HJ-OUTPUT
MQMD-STRUC
MQPMO-STRUC
DATA-LEN
MQ-DATA
MQ-COMPCODE
MQ-REASON --> successful
I am getting all the values(Data and MQMD fields) as mentioned in the below expect user-defined property or attribute(Type1).
As i am new to MQ, Please let me know whether i have to use MQSETMP call like the above code or any logic needs to be implemented?
Expected Output:
Encoding : '273'
CodedCHarSetid : '1208'
Format : 'MQHRF2'
PutApplType: '1'
PutApplName :'APP1'
PutDate : '20051005-11114412880'
Type1 : TA123Header 0: '<mcd><Msd>jms_text</Msd></mcd> '
Header 1: '<jms><Dst>queue:///MYQUEUE.SAMPLE.INPUT1 </Dst><Tms>14323
Header 2: '<usr><TimeStamp>Fri Jan,,,,,>
Message : TEST MESSAGE