Re: use GETSYMB macro under CICS

New Message Reply Date view Thread view Subject view Author view Other groups

Subject: Re: use GETSYMB macro under CICS
lezvse@aapt.net.au
Date: Thu Jun 12 2008 - 20:40:12 EDT


Hi Frank,

Without looking at the dump etc its a bit hard to tell from just the CICS
messages what went wrong. But looking at your assembler program the first thing
that stands out is that is non-reentrant. Depending upon how the
programs/transaction is defined this may not go down too well.

To me the simplest thing would be to convert it to LE-conforming. LE will then
handle the re-entrancy and the savearea conventions.
Here is your program converted to LE-conforming assembler that will work in
either a BATCH or CICS environment when called either statically or dynamically
from a LE-conforming program (eg COBOL/VSE) :
GETSYMB  TITLE 'GET THE VALUE OF A SYMBOLIC PARAMETER'
R0       EQU   0
R1       EQU   1
R2       EQU   2
R3       EQU   3
R4       EQU   4
R12      EQU   12
R13      EQU   13
R14      EQU   14
R15      EQU   15
GETSYMB  CEEENTRY PPA=ASMPPA,MAIN=NO,AUTO=STORLEN,EXECOPS=NO,          X
               PARMREG=1,BASE=(10),RMODE=ANY
         USING WORKAREA,R13
         B     START               JUMP PAST EYECATCHER
PROGID   DC    CL8'GETSYMB'        EYECATCHER
         DC    CL8'V1.R0.M0'
         DC    CL10'&SYSPARM'
         DC    CL11'&SYSDATE'
         DC    CL7'&SYSTIME'
START    DS    0H
         MVC   S_WS,S_EYEC
         MVC   E_WS,E_EYEC
MAIN     DS    0H                  MAIN ROUTINE
         LM    R2,R4,0(R1)         SAVE ADDRS OF PARMS IN R2,R3,R4
         GETSYMB AREA=GETSYMWK,PARMNAM=(2),VALBUF=(3),LENFLD=(4)
RETURN   DS    0H                  WE'RE DONE
         CEETERM RC=(R15)          RETURN, PASSING GETSYMB RESULT (R15)
         LTORG
*
* CONSTANTS
*
S_EYEC   DC    C'<*GETSYMB*>'
E_EYEC   DC    C'>*GETSYMB*<'
ASMPPA   CEEPPA ,
*
* WORKING STORAGE
*
WORKAREA DSECT
         ORG   *+CEEDSASZ
S_WS     DS    (L'S_EYEC)C
GETSYMWK DS    CL100
E_WS     DS    (L'E_EYEC)C
STORLEN  EQU   *-WORKAREA
         PRINT ON,NOGEN
         CEEDSA
         CEECAA
         END
There's a few "excess" statements in there that I just added to try and emulate
what your batch version was doing.

Since your program is loading and calling $IJBPROC outside of CICS commands it
doesn't need to be defined to CICS since CICS isn't aware of what is happening.
If you wanted to EXEC CICS LOAD/LINK/XCTL on it then your CICS/TS system would
need to either use PGM auto install or you would need to manually define it.

Regards,
Garry Hasler
ADL/z West Perth, Perth, Australia


New Message Reply Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b25 : Sun Jul 27 2008 - 05:20:06 EDT