Has anyone used the QLOGMSGP DSECT? If you have, can you please give
me an example of how it is used in a assmebler program. I'm sorry
about the length, but I am including the DSECT in this message. If
there is anyone here that can help me, I would really appreciate it.
MACRO ,
QLOGMSGP &DSECT=QLOGMSGP,&DSECTD=QLOGMSGD,&PREFIX=MSG,
&COMPAT=NO
.*
.*************************************************************
.* *
.* Licensed Materials - Property of IBM *
.* *
.* "Restricted Materials of IBM" *
.* *
.* 5655-158 (C) Copyright IBM Corp. 1974,1996 *
.* *
.*************************************************************
.*
LCLC &A PREFIX, NORMALLY 'MSG'.
GBLB &QLOGMP 1ST TIME SW FOR CHANGEID
.**************************************************************
.* *
.* ILOGTR MACRO MAINTENANCE STATUS *
.* *
.**************************************************************
AIF (&QLOGMP).SKCHGID SKIP CHANGEIDS AFTER 1ST TIM
CHANGEID NAME=QLOGMSGP,LINKAGE=MACRO
CHANGEID APAR=PT00015,ID=A,PREREQ=0 RECOVERY MOVE
CHANGEID APAR=PTP0023,ID=B,PREREQ=0 ALIGNMENT ERROR
CHANGEID APAR=PQ01275,ID=D,PREREQ=0
CHANGEID APAR=PQ03482,ID=E,PREREQ=0 PUT ENQ FAILURE
CHANGEID APAR=PQ03689,ID=F,PREREQ=PQ01275 MRQ SQ'S
CHANGEID APAR=PQ12661,ID=G,PREREQ=0 CQSF2 WRITE WAIT
CHANGEID APAR=PQ21571,ID=H,PREREQ=0
CHANGEID IDEND=YES
&QLOGMP SETB 1 SET CHANGEID FIRST TIME SWITCH
.SKCHGID ANOP , GO HERE TO SKIP CHANGEIDS
&A SETC '&PREFIX'
AIF ('&DSECT' EQ '').A
&DSECT DSECT ,
.A ANOP ,
***************************************************************
* *
* IMS MESSAGE RECORD AS LOGGED AND AS IT APPEARS ON *
* IMS MESSAGE QUEUES. *
* *
* RULES FOR ADDING NEW FIELDS TO PREFIX SEGMENTS: *
* *
* 1. NEW FIELDS NEED TO BE ADDED TO THE END *
* *
* 2. CANNOT CHANGE USE OF A FIELD OR FLAG ACROSS *
* RELEASES. IF NEED TO DO, CREATE A NEW FIELD/FLAG *
* AND MAINTAIN BOTH UNTIL THE IMS RELEASE USING THE *
* OLD FIELD/FLAG GOES BACK LEVEL. *
* *
* 3. CANNOT BE SENSITIVE TO PREFIX LENGTH. USE THE LL *
* IN FRONT OF THE PREFIX SEGMENT TO DETERMINE THE *
* LENGTH OF THE SEGMENT IF NECESSARY. *
* *
* 4. WHEN PROPAGATING THE PREFIX SEGMENT (IE: TO NEW *
* MESSAGES, ETC), THE LENGTH CAN BE INCREASED BUT *
* NOT DECREASED. ALWAYS PROPAGATE ALL FIELDS, EVEN *
* THOSE NOT DEFINED TO THE RELEASE. *
* *
* THESE RULES ARE NECESSARY TO SUPPORT THE MIGRATION *
* OF IMS RELEASES IN MULTIPLE SYSTEMS COUPLING (MSC), *
* MESSAGE REQUEUER (MRQ), AND SHARED QUEUES (SQ) *
* ENVIRONMENTS. THERE MAY BE OTHER NEEDS. *
* *
***************************************************************
SPACE 1
&A.PRFX DS 0D START OF PREFIX
&A.LRLL DS H LENGTH OF LOG RECORD OR
* USED PORTION OF DISK RECORD.
&A.LRZZ DS H ZZ FIELD RESERVED FOR QSAM
&A.LCODE DS X LOG CODE (01 OR 03)
SPACE 1
&A.FLAGS DS X MESSAGE FLAGS
&A.FFRST EQU X'80' FIRST RECORD OF MSG, FULL PREFIX
&A.FLAST EQU X'40' LAST DRRN (RECORD) OF MESSAGE
&A.FCANC EQU X'20' MESSAGE CANCELED
&A.FNRQU EQU X'10' NON-RECOVERABLE QUERY MESSAGE
&A.FQNR EQU X'0F' L/O NIBBLE HAS LOGICAL QUEUE NO.
SPACE 1
&A.DFLG2 DS X FLAGS FROM QDFLG2 OF QDEST
SPACE 1
&A.FPADL DS X PREFIX ADDITIONAL INFO FLAG
&A.FPRSP EQU X'80' RESPONSE MODE
&A.SACMD EQU X'40' SCHEDULED APPL ISSUED 'CMD'
&A.AOIUE EQU X'20' MSG GENERATED BY AOI USER EXIT
&A.SYSEG EQU X'10' SYSTEM SEGMENT EXISTS
&A.SSPND EQU X'08' MESSAGE IS ON SMB SUSPEND QUEUE
&A.FPINR EQU X'04' INPUT MESSAGE IS NON-RECOVERABLE
SPACE 1
&A.MDRRN DS F MESSAGE DRRN. NORMALLY, AND WHEN
* INITIALLY LOGGED, THIS POINTS TO
* THE CURRENT MESSAGE. IF THIS IS
* THE FIRST RECORD OF THE CURRENT
* MESSAGE, AND THERE IS ANOTHER
* CHAINED FROM THIS MESSAGE, THIS
* IS THE DRRN OF THAT MESSAGE.
&A.RDRRN DS F RECORD DRRN. NORMALLY, AND WHEN
* INITIALLY LOGGED, THIS IS THE
* DRRN OF THE CURRENT RECORD. WHEN
* THE MESSAGE IS CONTINUED INTO
* ANOTHER RECORD, THIS FIELD IS
* UPDATED TO POINT TO IT.
&A.PRFLL DS H LENGTH OF TOTAL MESSAGE PREFIX
&A.CSW DS X COMMUNICATIONS SWITCHES
&A.CSW0 EQU X'80' LOG WRITE AHEAD REQUESTED
&A.CSW1 EQU X'40' RESPONSE REQUIRED BY TERMINAL
&A.CSW2 EQU X'20' MESSAGE HAS BEEN ON SUSPEND QUEUE
&A.CSW3 EQU X'10' LOCAL OR GLOBAL QUEUE MODE
* 1 - GLOBAL QUEUE MODE - MESSAGE
* PUT ON SHARED QUEUE
* 0 - LOCAL QUEUE MODE - MESSAGE
* PUT ON IMS LOCAL QUEUE
&A.CSW4 EQU X'08' SHARED QUEUES RECOVERY MOVE
&A.CSW5 EQU X'04' CONVERTED PARTIAL DATA OBJECT
&A.CSW6 EQU X'02' RESERVED FOR COMM SWITCHES
&A.CSW7 EQU X'01' RESERVED FOR COMM SWITCHES
&A.DFLG3 DS X ADDITIONAL MESSAGE FLAGS
&A.NRND EQU X'80' NON-RECOVERABLE QUEUE MESSAGE
* NO DATA
&A.F3ZLN EQU X'40' ZERO LENGTH MESSAGE-PREFIX ONLY
&A.F3CHD EQU X'20' COMMUNICATION HEADER DATA
&A.F3NOE EQU X'10' ENQUEUE WAS BYPASSED DUE TO
* SYNC LU6.2 CONV PROCESSING
&A.F3MSC EQU X'08' MULTIPLE SYSTEM COUPLING RECEIVIN
* SYSTEM TIME AT ENQUEUE OF MESSAGE
* TO THE IMS QUEUE FOR LOCAL SMB.
&A.F3OVF EQU X'04' SPACE NOTIFICATION EXIT DFSQSPC0
* HAS SET BUFFER COUNT OVERFLOW.
* THIS IS FOR DEBUGGING ONLY.
&A.F3MRS EQU X'02' MESSAGE RETRIEVED FROM SHARED
* QUEUES.
&A.F3MLY EQU X'01' LOCAL=YES OPTION
* 1 - CQSREAD LOCAL=YES MESSAGE
* NOT RETURNED BY CQS
&A.UOW DS 0CL34 UNIT OF WORK (UOW) - TRACKING
&A.ORGID DS CL8 ORIGINATING IMSID
&A.ORGTK DS CL8 TOKEN (STOCK CLOCK VALUE)
&A.PROID DS CL8 PROCESSING IMSID
&A.PROTK DS CL8 TOKEN (STOCK CLOCK VALUE)
&A.UOWCL EQU *-&A.UOW LENGTH OF UOW FOR CQS REQUEST
&A.UOWSF DS 0CL2 UOW ID SUFFIX
&A.UFLG1 DS X UOW FLAG BYTE 1
&A.U1PUT EQU X'80' MESSAGE ASSOCIATED WITH CQSPUT.
&A.U1RD EQU X'40' MESSAGE ASSOCIATED WITH CQSREAD.
&A.UFLG2 DS X UOW FLAG BYTE 2
&A.U2DEL EQU X'80' MESSAGE ASSOCIATED WITH CQSDEL.
&A.U2MV EQU X'40' MESSAGE ASSOCIATED WITH CQSMOVE.
&A.RSQTY DS CL1 QTYPE FOR RESTART
DS CL3 RESERVED SPACE
**.. NEXT 6 BYTES ARE LOG RECORD ADDRESS OF PRIOR 01/03 RECORD
&A.DOFS DS H OFFSET WITHIN DISK LOG BLOCK
&A.DRBN DS F RBN ON DISK LOG
SPACE 1
&A.EBPFX EQU * END OF BASIC PREFIX
&A.LBPFX EQU *-&A.PRFX LENGTH OF BASIC PREFIX
EJECT
***************************************************************
* BEGINNING OF SYSTEM SEGMENT *
***************************************************************
SPACE 2
***************************************************************
* MESSAGE PREFIX SYSTEM SEGMENT ITEM. *
* *
* ALWAYS EXISTS AS THE FIRST SEGMENT ITEM IF *
* MSGSYSEG FLAG IN MSGFPADL IS SET. *
* A FULL PREFIX EXTENSION EXISTS FOR THE FIRST *
* SEGMENT OF A MSG. A SHORT PREFIX EXTENSION MAY *
* EXIST ONLY FOR A 2ND OR NTH SEGMENT AND THEN *
* ONLY IF ANOTHER SEGMENT ITEM IS REQUIRED. *
***************************************************************
SPACE 1
&A.SSEGM DS 0H START OF SYSTEM SEGMENT
DS H SIZE OF SYSTEM SEGMENT ITEM
DS X SYSTEM SEGMENT ITEM ID
SPACE 1
&A.CFLG1 DS X CONTENTS OF SYSTEM SEGMENT
SPACE 1
&A.PFXLS EQU *-&A.SSEGM
...
read more »