PJ36044: Msg GT than 100 blks causes CTL-4 or CTL-D2.
Closed as program error.
See Problem Summary.
APAR NUMBER: PJ36044 PRODUCT: z/TPF FUNCTIONAL AREA: MQS SUPPORT SHIPPED IN PUT: 10 ABSTRACT: With z/TPF WebSphere MQ Bridge support, large messages that require more than 100 chained blocks might result in a OPR-000004 or OPR-0000D2 in CUIM or CUIS. Also, the WebSphere MQ bridge does not send chained messages to the remote WebSphere MQ application, causing the application to fail. PACKAGE CONTENTS: Source Segments: (C) base/cp/clxa.cpy (C) base/cp/clxc.cpy (C) base/cp/clxv.cpy (C) base/rt/cuim.cpp (C) base/rt/cuis.cpp (C) hpo/rt/coah.asm Object Only Binaries: None. Configuration Independent Binaries: (C) base/load/CUIM.so (C) base/obj/cuim.o (C) hpo/load/COAH.so (C) hpo/obj/coah.o Support Files: base/lst/cuim.lst base/lst/CUIM.map hpo/lst/coah.lst hpo/lst/COAH.map OTHER BINARIES TO BUILD: YES (C) <sys>/lib/libCMQU.so (C) <sys>/load/CMQU.so (C) <sys>/load/CPS0.so (C) <sys>/obj/ccccp1.o (C) <sys>/obj/cuis.o COMMENTS: The area to hold block file addresses for a large message is an array of 100 doublewords. If more than 100 blocks are needed, the array area is exceeded. If the array area overflow does not cause a system error 000004 (OPR-000004) to be issued by the time the number of blocks exceeds 255, which is the maximum number of detacs allowed per ECB, system error 0000D2 (opr-0000D2) is issued. When messages are chained, copy segment CLXA in CSECT CCCCP1 routes the messages to the message router in program COAA. Program COAA then breaks up each chained message into separate message blocks, which are sent to a destination by a SENDC macro. As a result, each chained message that is sent by the WebSphere MQ bridge is broken up into separate message blocks. Because the z/TPF system sends the chained message in separate message blocks, the remote WebSphere MQ application might fail or receive an incomplete message. In addition, copy segment CLXC of CSECT CCCCP1 zeroes out the forward chain field of a message block that is chained to another message block, so any chained message that is sent by the WebSphere MQ bridge is sent in individual message blocks. Finally, chained messages that are sent by WebSphere MQ bridge to another CPU in a loosely-coupled complex are also broken up into individual message blocks.
SOLUTION: For CUIS, the blocks are filed instead of being held in storage with detac. For CUIM, the area to hold the output message is increased as needed to accommodate blocks that are read from file. The clxa.cpy segment was modified to call CUIM for WebSphere MQ messages. Copy segment CLXA of CSECT CCCCP1 is changed to bypass the message router in program COAA when a message is sent to a terminal that is defined as a WebSphere MQ workstation and the message is sent to the same CPU in a looosely-coupled complex.. Copy segment CLXC of CSECT CCCCP1 is changed to no longer zero out the forward chain field of a message block that is sent to a WebSphere MQ workstation. Program COAH is changed to bypass the message router in program COAA for messages that are sent to a WebSphere MQ workstation. Instead, COAH issues a ROUTC macro, so that chained messages that are sent to another CPU in a loosely-coupled complex are not broken up into individual message blocks. COREQS: NO None. MIGRATION CONSIDERATIONS: YES Application programming interface (API) changes: Chained messages that are sent to WebSphere MQ workstations by way of the WebSphere MQ bridge code in ROUTC processing are no longer broken up into individual message blocks by the z/TPF message router before they are sent by WebSphere MQ. Tests should be conducted with the remote WebSphere MQ application to ensure that chained messages that are sent by the z/TPF system are received by the remote application. Installation validation: 1. Enter ZMATP DEFINE to change the terminal type to WebSphere MQ (X'41') for the workstation that is receiving chained messages. 2. Issue a ROUTC macro for chained message to WebSphere MQ workstation. 3. Ensure that the remote WebSphere MQ application receives the entire chained message from the z/TPF system. BUILD COMMANDS AND INSTRUCTIONS: YES #maketpf commands for linux maketpf -f CPS0 ccccp1.o maketpf -f CMQU cuis.o maketpf -f CUIM cuim.o maketpf -f COAH coah.o maketpf CPS0 link maketpf CMQU link TPF_VERIFY_LINK_REFS=NO maketpf CUIM link maketpf COAH link maketpf CMQU link UPDATED INFORMATION UNITS: NO None. See your IBM representative if you need additional information. DOWNLOAD INSTRUCTIONS: http://www.ibm.com/software/htp/tpf/maint/maintztpf.html APAR URL: http://www.ibm.com/software/htp/tpf/ztpfmaint/put10/PJ36044.htm
Reported component name
Reported component ID
NoSpecatt / Xsystem
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
Fixed component ID
Applicable component levels