虚拟机中CICS访问DB2资源
CICS访问的资源必须在CICS中必须要定义安装。因此,在CICS中访问DB2资源时要定义安装的资源有如下几个:(1)DB2CONN:定义CICS与DB2的连接,一个CICS Region中只能定义一个DB2CONN (2)DB2Entry:访问DB2的入口 (3)DB2TRANS:使用DB2资源的交易
具体步骤如下:
第一步:启动DB2,测试DB2是否可用,比如,自己随便建立一个表,然后写数据,使用
第二步:在测试DB2正常时,在CICS中嵌入DB2代码:
第三步:编译CICS-DB2 程序:
1、PROC程序
//DB2CICS PROC WSPC=500,
// SUFFIX=1$,
// INDEX='DFH320.CICS',
// PROGLIB='DFH320.CICS.SDFHLOAD',
// DSCTLIB='DFH320.CICS.SDFHCOB',
// AD370HLQ='IGY340',
// LE370HLQ='CEE',
// DB2HLQ='DSN910',
// DSNID='DB9G',
// OUTC=A,
// REG=4M,
// LNKPARM='LIST,XREF',
// STUB='DFHEILID',
// LIB='SDFHSAMP',
// WORK=SYSDA,
// DBRMLIB=,
// CPYLIB=,
// COBLIB=,
// COBMEM=,
// DBRMMEM=&COBMEM
//* PRECOMPILE SQL STATEMENT
//PC EXEC PGM=DSNHPC,PARM='HOST(IBMCOB)'
//DBRMLIB DD DSN=&DBRMLIB.(&DBRMMEM),DISP=SHR
//STEPLIB DD DISP=SHR,DSN=&DB2HLQ..&DSNID..SDSNEXIT
// DD DISP=SHR,DSN=&DB2HLQ..SDSNLOAD
//SYSCIN DD DSN=&&DSNHOUT,DISP=(MOD,PASS),UNIT=3390,
// SPACE=(800,(&WSPC,&WSPC))
//SYSLIB DD DISP=SHR,DSN=&CPYLIB.
// DD DISP=SHR,DSN=&COBLIB.
//SYSPRINT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=3390
//SYSUT2 DD SPACE=(800,(&WSPC,&WSPC),,,ROUND),UNIT=3390
//SYSIN DD DISP=SHR,DSN=&COBLIB.(&COBMEM.)
//* TRANSLATE CICS STATEMENT
//TRN EXEC PGM=DFHECP&SUFFIX,
// PARM='COBOL3',
// REGION=®
//STEPLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSIN DD DISP=SHR,DSN=&&DSNHOUT
//SYSPUNCH DD DSN=&&SYSCIN,
// DISP=(,PASS),UNIT=&WORK,
// DCB=BLKSIZE=400,
// SPACE=(400,(400,100))
//* COMPILE COBOL
//COB EXEC PGM=IGYCRCTL,REGION=®,
// PARM='NODYNAM,LIB,OBJECT,RENT,RES,APOST,MAP,XREF'
//STEPLIB DD DSN=&AD370HLQ..SIGYCOMP,DISP=SHR
//SYSLIB DD DSN=&DSCTLIB,DISP=SHR
// DD DSN=&INDEX..SDFHCOB,DISP=SHR
// DD DSN=&INDEX..SDFHMAC,DISP=SHR
// DD DSN=&INDEX..SDFHSAMP,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
// UNIT=&WORK,SPACE=(80,(250,100))
//SYSUT1 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT2 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT3 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT4 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT5 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT6 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT7 DD UNIT=&WORK,SPACE=(460,(350,100))
//* COPYLINK
//COPYLINK EXEC PGM=IEBGENER,COND=(7,LT,COB)
//SYSUT1 DD DSN=&INDEX..&LIB(&STUB),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
//* LINK-EDITED
//LKED EXEC PGM=IEWL,REGION=®,
// PARM='&LNKPARM',COND=(5,LT,COB)
//DB2LOAD DD DSN=&DB2HLQ..SDSNLOAD,DISP=SHR
//SYSLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
// DD DSN=&LE370HLQ..SCEELKED,DISP=SHR
//SYSLMOD DD DSN=&PROGLIB,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
2、调用PROC的JCL程序:
//IBMUSERA JOB NOTIFY=&SYSUID,MSGLEVEL=(1,1)
//MYPROC JCLLIB ORDER=(CBK.A3.UTL) PROC存放的数据集
//COMLINK1 EXEC DB2CICS, PROC的NAME
// COBLIB='CBK.A3.SRC', 要编译的COBOL源程序的存放数据集
// PROGLIB='CBK.A3.LOD', 生成的可执行文件的数据集
// DBRMLIB='CBK.A3.DB2.DBRM', 存放DB2 DBRM的数据集
// CPYLIB='CBK.A3.DB2.INCLUDE', 用DCLGEN生成的DB2文件的位置
// DSCTLIB='CBK.A3.CPY', MAP 逻辑映像位置
// COBMEM=DELETEI COBOL 源程序名
//LKED.SYSIN DD * DSNHADDR和DSNHADD2是两个在编译时必
INCLUDE DB2LOAD(DSNHADDR) 须include进来的东西所在库由DB2CICS过程
INCLUDE DB2LOAD(DSNHADD2) 中的DB2LAOD DD语句指定
INCLUDE SYSLMOD(DELI00) MAP 物理映像
NAME DELETEI(R) COBOL load 模块名
/*
/***************BING DB2********/
//BIND EXEC PGM=IKJEFT01,DYNAMNBR=20
//STEPLIB DD DSN=DSN910.SDSNLOAD,DISP=SHR
//DBRMLIB DD DSN=CBK.A3.DB2.DBRM,DISP=SHR
//SYSUDUMP DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSIN DD *
SET CURRENT SQLID = 'IBMUSER';
GRANT EXECUTE ON PLAN IBMUSER TO PUBLIC;
//SYSTSIN DD *
DSN SYSTEM(DB9G)
BIND PACKAGE(IBMUSER) MEMBER(DELETEI) -
ACT(REP) ISO(CS) ENCODING(EBCDIC) OWNER(IBMUSER) QUALIFIER(IBMUSER)
BIND PLAN(DELETEI) OWNER(IBMUSER) -
PKLIST (IBMUSER.* -
CBK.A3.* -
) -
ACT(REP) ISO(CS) ENCODING(EBCDIC) OWNER(IBMUSER) QUALIFIER(IBMUSER)
END
/*
第三步:启动CICS并进行定义
1、首先定义安装程序和交易:
CEDA DEF PROG() GROUP()
CEDA DEF TRANS() PROG() GROUP()
CEDA INS PROG() GROUP()
CEDA INS TRANS() GROUP(**)
2、定义DB2CONN:DB2CONN在CICS中只能定义一次,如果重复定义会覆盖
首先:DSNC STOP命令来停止DB2和CICS的连接
然后:
安装DB2CONN
3、定义DB2ENTRY:DB2ENTRY可以定义多个,针对不同的交易,注意,DB2entry的安装只能在DB2CONN安装之后
安装DB2ENTRY
将DEF 改为 INS
4、启动DSNC:
DSNC STRT
5、查看DB2CONN 和DB2ENTRY是否可用:
CEMT I DB2CONN
CEMT I DB2ENTRY
页:
[1]