|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
MQ 2173 Error Code |
« View previous topic :: View next topic » |
Author |
Message
|
Mainframe Dude |
Posted: Fri Oct 20, 2006 10:01 am Post subject: MQ 2173 Error Code |
|
|
Newbie
Joined: 20 Oct 2006 Posts: 6
|
While changing a Cobol batch program from using an MQPUT1 to using an MQPUT (with MQOPEN before and MQCLOSE after processing is complete), I'm receiving a 2173 reason code, completion code 2, whenever I attempt the MQPUT. I changed the parameter listing accordingly. Connect is from MQCONN and Object is from the MQOPEN. Any ideas? The MQPUT1 works great but is not as efficient when writing multiple records to the queue. Thanks
MOVE MQMI-NONE
TO MQMD-MSGID OF PUT-MESSAGE-DESCRIPTOR.
MOVE MQPER-PERSISTENT
TO MQMD-PERSISTENCE OF PUT-MESSAGE-DESCRIPTOR.
MOVE MQFMT-STRING
TO MQMD-FORMAT OF PUT-MESSAGE-DESCRIPTOR.
ADD MQPMO-NO-SYNCPOINT MQPMO-FAIL-IF-QUIESCING
GIVING MQPMO-OPTIONS.
MOVE LENGTH OF WMSULOGE-RECORD TO WS-BUFFER-LENGTH.
CALL 'MQPUT' USING
WS-HANDLE-CONNECT,
WS-HANDLE-OBJECT,
PUT-MESSAGE-DESCRIPTOR,
MQM-PMOPTIONS,
WS-BUFFER-LENGTH,
WMSULOGE-RECORD,
WS-COMP-CODE,
WS-REASON
END-CALL |
|
Back to top |
|
 |
kevinf2349 |
Posted: Fri Oct 20, 2006 10:17 am Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Quote: |
PUT-MESSAGE-DESCRIPTOR,
MQM-PMOPTIONS,
|
Shouldn't that be
Code: |
PUT-MESSAGE-DESCRIPTOR,
MQPMO-OPTIONS,
|
|
|
Back to top |
|
 |
Mainframe Dude |
Posted: Fri Oct 20, 2006 11:28 am Post subject: Thanks, But Same Error |
|
|
Newbie
Joined: 20 Oct 2006 Posts: 6
|
I tried your suggestion, but I received the same error. When setting up queues do you know if different security can be defined for MQPUT1 versus MQPUT. My guys say no, but there has to be something environmental that's causing this error.
CALL 'MQCONN' USING
WS-QMGR,
WS-HANDLE-CONNECT,
WS-COMP-CODE,
WS-REASON
END-CALL
CALL 'MQOPEN' USING
WS-HANDLE-CONNECT,
PUT-OBJECT-DESCRIPTOR,
MQM-PMOPTIONS,
WS-HANDLE-OBJECT,
WS-COMP-CODE,
WS-REASON
END-CALL
CALL 'MQPUT' USING
WS-HANDLE-CONNECT,
WS-HANDLE-OBJECT,
PUT-MESSAGE-DESCRIPTOR,
MQPMO-OPTIONS,
WS-BUFFER-LENGTH,
WMSULOGE-RECORD,
WS-COMP-CODE,
WS-REASON
END-CALL
Here's some displays from the program, with the error message:
MQ CONNECT SUCCESSFUL
QUEUE SUCCESSFULLY OPENED
*** MQ ERROR ENCOUNTERED ***
PARAGRAPH..: 2530-
TASK.......: MQPUT
COMPCODE...: 000000002
REASON.....: 000002173
QUEUE NAME.: QMWM.MQ.WMSULOGE.WHSE0530 |
|
Back to top |
|
 |
wschutz |
Posted: Fri Oct 20, 2006 11:53 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
How is MQPMO-OPTIONS, declared? Is it properly initialized?
Code: |
* Put message options
01 PMOPTIONS.
COPY CMQPMOV. |
actually .... the PMO parm on the MQPUT has to be the 01 structure, doesn't it? _________________ -wayne |
|
Back to top |
|
 |
Mainframe Dude |
Posted: Fri Oct 20, 2006 12:02 pm Post subject: MQPMO-OPTIONS Definition: |
|
|
Newbie
Joined: 20 Oct 2006 Posts: 6
|
In Working-Storage it's defined as follows, an elementary item under MQM-PMOPTIONS:
01 MQM-PMOPTIONS.
** MQPMO structure
10 MQPMO.
** Structure identifier
15 MQPMO-STRUCID PIC X(4) VALUE 'PMO '.
** Structure version number
15 MQPMO-VERSION PIC S9(9) BINARY VALUE 1.
** Options
15 MQPMO-OPTIONS PIC S9(9) BINARY VALUE 0.
** Reserved
15 MQPMO-TIMEOUT PIC S9(9) BINARY VALUE -1.
** Object handle of input queue
15 MQPMO-CONTEXT PIC S9(9) BINARY VALUE 0.
** Reserved
15 MQPMO-KNOWNDESTCOUNT PIC S9(9) BINARY VALUE 0.
** Reserved
15 MQPMO-UNKNOWNDESTCOUNT PIC S9(9) BINARY VALUE 0.
** Reserved
15 MQPMO-INVALIDDESTCOUNT PIC S9(9) BINARY VALUE 0.
** Resolved name of destination queue
15 MQPMO-RESOLVEDQNAME PIC X(4 VALUE SPACES.
** Resolved name of destination queue manager
15 MQPMO-RESOLVEDQMGRNAME PIC X(4 VALUE SPACES. |
|
Back to top |
|
 |
wschutz |
Posted: Fri Oct 20, 2006 12:12 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Code: |
CALL 'MQPUT' USING
WS-HANDLE-CONNECT,
WS-HANDLE-OBJECT,
PUT-MESSAGE-DESCRIPTOR,
MQM-PMOPTIONS, <-------------------------
WS-BUFFER-LENGTH,
WMSULOGE-RECORD,
WS-COMP-CODE,
WS-REASON
END-CALL |
_________________ -wayne |
|
Back to top |
|
 |
Mainframe Dude |
Posted: Fri Oct 20, 2006 12:25 pm Post subject: We've Gone Full Circle Now |
|
|
Newbie
Joined: 20 Oct 2006 Posts: 6
|
If you look at my initial post that's the field I used originally.
CALL 'MQPUT' USING
WS-HANDLE-CONNECT,
WS-HANDLE-OBJECT,
PUT-MESSAGE-DESCRIPTOR,
MQM-PMOPTIONS,
WS-BUFFER-LENGTH,
WMSULOGE-RECORD,
WS-COMP-CODE,
WS-REASON
END-CALL
Thanks. |
|
Back to top |
|
 |
kevinf2349 |
Posted: Fri Oct 20, 2006 12:36 pm Post subject: |
|
|
 Grand Master
Joined: 28 Feb 2003 Posts: 1311 Location: USA
|
Huh?
You wrote:
Quote: |
CALL 'MQOPEN' USING
WS-HANDLE-CONNECT,
PUT-OBJECT-DESCRIPTOR,
MQM-PMOPTIONS, <=========
WS-HANDLE-OBJECT,
WS-COMP-CODE,
WS-REASON
END-CALL
|
then
Quote: |
CALL 'MQPUT' USING
WS-HANDLE-CONNECT,
WS-HANDLE-OBJECT,
PUT-MESSAGE-DESCRIPTOR,
MQM-PMOPTIONS, <====== same option field for OPEN and PUT?
WS-BUFFER-LENGTH,
WMSULOGE-RECORD,
WS-COMP-CODE,
WS-REASON
END-CALL
|
Try
Code: |
01 MQM-PMOPTIONS.
COPY CMQODV.
then....
ADD MQPMO-NO-SYNCPOINT MQPMO-FAIL-IF-QUIESCING
GIVING MQM-PMOPTIONS.
Then....
CALL 'MQPUT' USING
WS-HANDLE-CONNECT,
WS-HANDLE-OBJECT,
PUT-MESSAGE-DESCRIPTOR,
MQM-PMOPTIONS,
WS-BUFFER-LENGTH,
WMSULOGE-RECORD,
WS-COMP-CODE,
WS-REASON
END-CALL
|
If that fails I suggest you post the full code. It isn't environmental. If you can use MQPUT1 you should be able to use MQOPEN, MQPUT and MQCLOSE. |
|
Back to top |
|
 |
wschutz |
Posted: Fri Oct 20, 2006 12:49 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Kevin, I don't think thats correct... the MQPUT needs the PMO structure .... it should be a different label then the result of the ADD statement, no?
and the MQOPEN doesn't get ANY PMO references, at all.... _________________ -wayne |
|
Back to top |
|
 |
Mainframe Dude |
Posted: Fri Oct 20, 2006 12:54 pm Post subject: Compilation Error |
|
|
Newbie
Joined: 20 Oct 2006 Posts: 6
|
I gave it a shot, received a compilation error:
002404 ADD MQPMO-NO-SYNCPOINT MQPMO-FAIL-IF-QUIESCING
002405 GIVING MQM-PMOPTIONS.
2404 IGYPA3146-S Receiving operand "MQM-PMOPTIONS (GROUP)" of an arithmetic statement was neither numeric nor numeric-edited.
The statement was discarded.
I appreciate your help. I have many examples of programs in production that are using the MQOPEN, MQPUT, and MQCLOSE, so duplicating that code was very easy, that's why I thought it may have something to do with how the queues are set up. |
|
Back to top |
|
 |
Mr Butcher |
Posted: Sat Oct 21, 2006 11:29 pm Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
you mix the 01 structure MQM-PMOPTIONS with the field name MQPMO-OPTIONS . you cant compute to the 01 level structure name, use the option field name istead. the mqput call indeed needs the stucture name, but you must fill the fields within the structure. _________________ Regards, Butcher |
|
Back to top |
|
 |
Mainframe Dude |
Posted: Mon Oct 23, 2006 7:05 am Post subject: Thanks |
|
|
Newbie
Joined: 20 Oct 2006 Posts: 6
|
Thanks for all your input. It looks like my original code matches up with what everyone says it should look like. That's what's so frustrating about this issue. I have many examples of programs, working in production, that use this simple construct. I cannot explain why the MQPUT1 works fine but when I add the open, put, and close it dies on the put. I thought perhaps the way the queue is set up had something to do with it, or security for a PUT versus PUT1 being the reason, but everyone has said if the PUT1 works the PUT should also. I'm going to try to work w/ IBM on this thru our Tech guys. I'll post the resolution IF I get one. Thanks again. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Oct 23, 2006 7:17 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Repost your current code. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|