MAP示例

MAP文件

LOSMATT DFHMSD TYPE=MAP,                                               X
               MODE=INOUT,                                             X
               TIOAPFX=YES,                                            X
               TERM=3270-2,                                            X
               LANG=C,                                                 X
               MAPATTS=(COLOR,HILIGHT),                                X
               DSATTS=(COLOR,HILIGHT),                                 X
               STORAGE=AUTO,                                           X
               CTRL=(FREEKB,FRSET)                                      
*                                                                       
LOSATT  DFHMDI SIZE=(24,80),                                           X
               LINE=1,                                                 X
               COLUMN=1                                                 
*                                                                       
LSSTDII DFHMDF POS=(1,01),                                             X
               LENGTH=04,                                              X
               COLOR=BLUE,                                             X
               INITIAL='MQCM',                                         X
               ATTRB=PROT                                               
*                                                                       
        DFHMDF POS=(24,01),                                            X
               LENGTH=79,                                              X
               COLOR=BLUE,                                             X
               ATTRB=ASKIP,                                            X
               INITIAL='PF7-          8-           9-          10-     X
                   11-            12-CANCEL'                            
*                                                                       
          DFHMSD   TYPE=FINAL                                           
          END

JCL脚本

下面的JCL脚本将MAP(IBMUSER.CICSP(LOSMATT))转化为

  • Symbol Map(IBMUSER.PROJ(LOSMATT))
  • Physical Map(IBMUSER.RUNLIB.LOAD(LOSMATT))。
    //MAPJCL JOB  MSGCLASS=X,CLASS=A,MSGLEVEL=(1,1),NOTIFY=&SYSUID
    //STEP1 EXEC DFHMAPS
    //COPY.SYSUT1      DD DSN=IBMUSER.CICSP(LOSMATT),DISP=SHR
    //LINKMAP.SYSLMOD  DD DSN=IBMUSER.RUNLIB.LOAD(LOSMATT),DISP=SHR
    //ASMDSECT.SYSPUNCH DD DSN=IBMUSER.PROJ(LOSMATT),DISP=SHR
    

上面的脚本调用了编目过程DFH320.CICS.ADFHPROC(DFHMAPS)。需要对该过程进行适当的修改。

    INDEX='DFH320.CICS'
MAPLIB='DFH320.CICS.SDFHLOAD'
DSCTLIB='DFH320.CICS.SDFHMAC'

运行该JCL脚本后,Physical Map将存在IIMUSER.RUNLIB.LOAD(LOSMATT)中, 需将其复制到CICS的LOAD路径下,本例中为CEE.SCEECICS。参见本节11.1。

一个需要注意的问题是,上面脚本产生的symbolic map的编码问题。 默认情况下上面的脚本产生的C文件的编码是IBM-1047。 在编译的时候,如果其他的文件使用的编码不是IBM-1047(例如IBM-1388),需要在该文件的开始位置加入

??=pragma filetag("IBM-1047")

或者用下面的JCL转化

//CONVERT JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID 
//GO EXEC PGM=IEFBR14
//ALLOC  DD DSN=IBMUSER.PROJ(LOS),DISP=SHR,    
//        UNIT=3390,VOL=SER=Z9USR1,SPACE=(100,50),          
//        DCB=(LRECL=80,RECFM=FB,BLKSIZE=100)
//ICONV    EXEC PROC=EDCICONV,
//         INFILE='IBMUSER.PROJ(MAP)',
//         OUTFILE='IBMUSER.PROJ(LOS)',
//         FROMC='IBM-1047',
//         TOC='IBM-1388'

过程CEE.SCEEPROC(EDCICONV)必须预先定义输出文件(OUTFILE)。因此,需要预先DD ALLOC。关于EDCICONV的更详细的要求,可以参见参考资料[2]。

CICS资源定义

编译后,需要在CICS中定义Mapset。 定义后,可以在C程序中EXEC CICS SEND MAP ("losatt") MAPSET ("losmatt"); 或者在cics中CECI SEND MAP ('LOSATT') MAPSET ('LOSMATT'),注意不能用双引号。

备注:如果修改了MAP,需要刷新MAP才能生效CEMT SET PROG(MAPNAME) NEW

C代码

下面的代码简述了在CICS中输出map的方法

??=pragma filetag("IBM-1388")
void main() {
    long int RespCode;
    EXEC CICS ADDRESS EIB(dfheiptr) RESP(RespCode);
    if(RespCode != DFHRESP(NORMAL)){
    }
    EXEC CICS ADDRESS TWA(pTWA) RESP(RespCode);
    if(RespCode != DFHRESP(NORMAL)){
    }
    EXEC CICS SEND MAP ('LOSATT') MAPSET ('LOSMATT') RESP(RespCode);
    EXEC CICS RETURN;
}

results matching ""

    No results matching ""