I don't think that EXCI is truly being used in this case. Unless the program
is compiled with the CICS('EXCI') option, or it calls the "callable" EXCI
routine (DFHXCIS) directly, the fact that you have linked in the EXCI stubs
doesn't seem to matter.
As for DFHECI, isn't that an older CICS stub for COBOL programs? For COBOL
CICS links we include DFHELII. I don't know if there is any real difference,
other than that DFHECI has a few entry point labels and DFHELII has "quite a
few".
The fact is, if you don't have any explicit include of a CICS stub, and you
have AUTOLINK on, you will end up automatically linking in DFHEAI (the
"assembler" CICS stub). This is because SDFHLOAD has declared DFHEI1 (the
entry point called by a non-EXCI EXEC CICS) as an alias for DFHEAI.
It seems to me that as long as your COBOL program isn't some how attempting to
invoke an entry point other than DFHEI1, it does not appear to matter which
CICS stub is actually linked in to the program.
I'm sure there is more to it, but I don't know what.
Here are some binder output examples...
When linking in DFHXCSTB (note, does not have the DFHEI1 label):
0 DFHXCSTB CSECT 2AA SYSLIB 14 DFHXCSTB
0 0 DFHXCIS LABEL
1BC 1BC DFHXCIE LABEL
When linking DFHELII (includes DFHEI1 label):
0 DFHELII CSECT 28 SYSLIN 02 DFHELII
0 0 DFHEPIN LABEL
8 8 DFHEXEC LABEL
8 8 DFHEI1 LABEL
8 8 DFHEPI LABEL
8 8 DFHEI2 LABEL
[...a lot more labels...]
When linking DFHECI (includes DFHEI1 label):
0 DFHECI CSECT 20 SYSLIN 02 DFHECI
8 8 DFHEI1 LABEL
8 8 DLZEI01 LABEL
8 8 DLZEI02 LABEL
8 8 DLZEI03 LABEL
8 8 DLZEI04 LABEL
When autolinking (no explicit binder statement):
480 DFHEAI * CSECT 28 SYSLIB 08 DFHEI1
8 488 DFHEI1 LABEL
Frank
________________________________
From: IBM Mainframe Discussion List <[email protected]> on behalf of
Tony Thigpen <[email protected]>
Sent: Sunday, April 23, 2017 2:08 PM
To: [email protected]
Subject: Re: DFHEXLI vs DFHECI
I can verify that it really is an online program. It is in CICS and the
programmer just recompiled it with a small change to verify it was
really the right compile. The change showed up and I looked at the
linkmap (which I included with the last email).
Tony Thigpen
[email protected] wrote on 04/23/2017 12:50 PM:
> Hello Tony
>
> I'm a bit confused ...
> Are You Sure this is a program that runs as a CICS Transaction ?
> Can You issue CEMT I PROG(xxxxx), or CEMT I TRANS(*) PROG(xxxxxxxx) or
> better yet issue a CECI LOAD PRPGRAM(xxxxxxxx)
> .
> I suspect its a Batch Submitted program using EXCI to LINK To or Start a
> transaction
> in a CICS Region.
>
>
> ---------- Original Message ----------
> From: Tony Thigpen <[email protected]>
> To: [email protected]
> Subject: Re: DFHEXLI vs DFHECI
> Date: Sat, 22 Apr 2017 15:53:51 -0400
>
> I had a little time and looked at this closer. I am trying to determine
> what they are really doing and why.
>
> Here is the JCL that they use to compile:
>
> ... translate step
> ... cobol step with output going to
> //SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
> // UNIT=&WORK,SPACE=(80,(250,100))
> ... then
> //COPYLINK EXEC PGM=IEBGENER,COND=(7,LT,COB)
> //SYSUT1 DD DSN=&INDEX..SDFHMAC(DFHEXLI),DISP=SHR
> //SYSUT2 DD DSN=&©LINK,DISP=(NEW,PASS),
> // DCB=(LRECL=80,BLKSIZE=400,RECFM=FB),
> // UNIT=&WORK,SPACE=(400,(20,20))
> //SYSPRINT DD SYSOUT=&OUTC
> //SYSIN DD DUMMY
> //*------------------------------------------------
> //LKED EXEC PGM=IEWL,REGION=®,
> // PARM='&LNKPARM',COND=(5,LT,COB)
> //SYSLIB DD DSN=&INDEX..SDFHEXCI,DISP=SHR
> // DD DSN=&INDEX..SDFHLOAD,DISP=SHR
> // DD DSN=&LE370HLQ..SCEELKED,DISP=SHR
> // DD DSN=&INDEX..SDFHCOB,DISP=SHR
> // DD DSN=&INDEX..SDFHMAC,DISP=SHR
> // DD DSN=&INDEX..SDFHSAMP,DISP=SHR
> //SYSLMOD DD DSN=XXXX.&CICS..USER.LOADLIB,DISP=SHR
> //SYSUT1 DD UNIT=&WORK,DCB=BLKSIZE=1024,
> // SPACE=(1024,(200,20))
> //SYSPRINT DD SYSOUT=&OUTC
> //SYSLIN DD DSN=&©LINK,DISP=(OLD,DELETE)
> // DD DSN=&&LOADSET,DISP=(OLD,DELETE)
> // DD DDNAME=SYSIN
>
> They run the compile using:
> /HBCC08 EXEC CICSCCLH,.....
> //TRN.SYSIN DD *
> ./ INCLUDE HBCC08,LIB=PROD
> /*
> //LKED.SYSIN DD *
> NAME HBCC08(R)
> /*
> //
>
> It seems that ..SDFHMAC(DFHEXLI) only contains one line:
> INCLUDE SYSLIB(DFHXCSTB)
>
> DFHXCSTB is in ..SDFHEXCI
>
> It appears that during the link stage, DFHEI1 is being pulled in
> automatically.
>
> BATCH EMULATOR JOB(HBCC08 ) STEP(HBCC08 ) PGM= IEWL
> PROCEDURE(LKED )
> IEW2278I B352 INVOCATION PARAMETERS - AMODE(31),RMODE(ANY),LIST,XREF
>
> IEW2322I 1220 1 INCLUDE SYSLIB(DFHXCSTB)
> IEW2322I 1220 2 NAME HBCC08(R)
> C R O S S - R E F E R E N C E T
> A B L E
>
> _________________________________________
> TEXT CLASS = B_TEXT
>
> --------------- R E F E R E N C E -------------------------- T A R G
> E T ---
> CLASS ELEMENT |
>
> OFFSET SECT/PART(ABBREV) OFFSET TYPE | SYMBOL(ABBREV)
> SECTION (ABB
> 2A0 HBCC08 50 V-CON | IGZCBSO
> IGZCBSO
> 30A HBCC08 BA V-CON | CEESTART
> CEESTART
> 32A HBCC08 DA V-CON | CEESTART
> CEESTART
> 32E HBCC08 DE V-CON | CEEBETBL
> CEEBETBL
> 384 HBCC08 134 V-CON | DFHEI1
> DFHEAI
> 388 HBCC08 138 V-CON | CEELOCT
> CEELOCT
> 33BC CEEBETBL 4 V-CON | CEEBXITA
> $UNRESOLVED(
>
> So, what are they really doing by including something from the EXCI
> library instead of the normal INCLUDE?
>
> Tony Thigpen
>
> [email protected] wrote on 04/22/2017 09:59 AM:
>> Hi Tony
>>
>> I found two references to DFHEXLI
>> and also refer to the external interface guide as you mentioned
>>
>> CICS.SDFHPROC(DFHYXTDL)
>>
>> CICS.SDFHPROC(DFHEXTAL)
>>
>> ---------- Original Message ----------
>> From: Tony Thigpen <[email protected]>
>> To: [email protected]
>> Subject: DFHEXLI vs DFHECI
>> Date: Fri, 21 Apr 2017 21:09:07 -0400
>>
>> I am working with a site, and their CICS COBOL compile procs include
>> DFHEXLI instead of DFHECI.
>>
>> I thought DFHEXLI was only for batch programs using the external
>> interface link. But, there is not much information about it when I
>> google it.
>>
>> Can DFHEXLI safely be used for "normal" CICS programs?
>>
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
>
>
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN