企业培训_cics技术培训_第1页
企业培训_cics技术培训_第2页
企业培训_cics技术培训_第3页
企业培训_cics技术培训_第4页
企业培训_cics技术培训_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CICS技术培训 CICS开发 2020 2 18 介绍 通过这门课 我们可以学习 CICS客户端程序开发基础CICS服务器端程序开发基础编写利用CICS访问数据库的程序CICS提供的应用数据类型 CICS应用模型 客户程序 SFS RDB MQ ECI EPI 其他CICS服务器 CICS服务器 CICSCLIENT开发 CICSCLIENT开发 CICSECI调用 功能从非CICS程序的客户程序调用CICSServer交易方式ECI ExternalCallInterfaceEPI ExternalPresentationInterface函数CICS ExternalCall CICSECI程序实例 1 includeECI PARMSEciParms charcommArea 1024 注 commArea不能大于32K CICSECI程序实例 2 memset CICSECI程序实例 3 EciParm eci commarea commArea EciParm eci commarea length sizeof commArea EciParm eci extend mode ECI NO EXTEND EciParm eci luw token ECI LUW NEW EciParm eci timeout 30 注1 commArea任意格式 最好是字符串 注2 长度为发送和接收的较大者 CICSECI程序实例 4 rc CICS ExternalCall 注 rc 在cics eci h中定义EciParms eci abend code info lcics s 编译CICSECI程序 在SCOOpenServer cc DCICS SCO belf lcclsco lc occ c 运行CICSECI程序 启动CICSECI cicscli S CICSRGx运行程序 c停止CICSECI cicscli X CICSRGx CICSSERVER开发 CICSSERVER开发 CICSSERVER程序实例 main unsignedlongrc char commArea EXECCICSADDRESSEIB dfheiptr RESP rc EXECCICSADDRESSCOMMAREA commArea RESP rc EXECSQL EXECCICSSYNCPOINT strcpy commArea ResultData EXECCICSRETURN CICS语句语法 EXECCICS command options options RESP rc 例如 unsignedlongrc EXECCICSSYNCPOINTRESP rc if rc DFHRESP NORMAL then 数据通讯区CommArea 使用方式非CICS程序中 客户端程序 用户申请空间接收和返回均使用此空间申请大小为发送和接收两者的较大者CICS程序中 无须申请空间接收和返回均使用此空间同步调用其他CICS程序时传递数据异步调用时传递数据长度不大于32K SERVER程序获得COMMAREA 获得请求数据char commarea 无须申请空间 EXECCICSADDRESSEIB dfheiptr EXECCICSADDRESSCOMMAREA commarea 获得请求数据的长度dfheiptr eibcalen例如 if dfheiptr eibcalen 0 then 逻辑事务单元 LogicalUnitofWork CICS交易中 两个CICS提交 回滚之间的处理为一个LUW 交易的提交和回滚 显式调用提交 回滚命令EXECCICSSYNCPOINT 提交EXECCICSSYNCPOINTROLLBACK 回滚 客户程序提交和回滚 ECIClient控制提交 回滚eci extend mode参数ECI NO EXTEND 执行完毕即提交ECI EXTENDED 延伸到下一次ECI调用ECI COMMIT 提交ECI BACKOUT 回滚eci luw token参数指定LUW的编号ECI LUW NEW开始一个新的LUW 客户程序提交和回滚示例 示例程序 EciParm eci commarea commArea EciParm eci commarea length sizeof commArea EciParm eci extend mode ECI NO EXTEND EciParm eci luw token ECI LUW NEW EciParm eci timeout 30 rc CICS ExternalCall 访问数据库 XA方式 无须连接数据库数据库操作EXECSQL 数据库提交 回滚EXECCICSSYNCPOINTEXECCICSSYNCPOINTROLLBACK通过sqlca sqlcode判断EXECSQL的执行结果 访问数据库 非XA方式 连接数据库EXECSQLCONNECTTODATABASE 数据库操作EXECSQL 数据库提交 回滚EXECSQLCOMMITEXECSQLROLLBACK数据库关闭EXECSQLDISCONNECT通过sqlca sqlcode判断执行结果 程序间调用语句 EXECCICSLINK调用另一个程序结束后返回调用程序EXECCICSXCTL将控制转给另一个程序 不返回EXECCICSSTART异步执行另一个交易 可设置启动时间 EXECCICSRETURN返回调用程序当前CommArea内容也返回 EXECCICSLINK EXECCICSLINKPROGRAM name COMMAREA dataarea LENGTH datavalue SYSID name SYNCONRETURN 例 EXECCICSLINKPROGRAM PROG1 COMMAREA CommArea LENGTH 100 关于事务提交与回滚 B中SYNCPOINT只提交B中内容 A中SYNCPOINT提交A和B中内容 若B未提交 若B提交了 而A回滚 则B中内容不会回滚 数据访问与共享 交易内数据共享交易间数据共享 客户端 A 客户端 X 交易内数据共享 TWA TransactionWorkArea同一交易内所有程序共享TD中定义大小 0 31767EXECCICSADDRESSTWA 使用CICS私有存储区EXECCICSGETMAIN使用CommAreaEXECCICSLINK COMMAREA EXECCICSXCTL COMMAREA 交易间数据共享 CWA CommonWorkArea所有程序共享RD中定义 512 3584EXECCICSADDRESSCWA 共享CICS存储区EXECCICSGETMAINSET SHAREDVSAM文件 SFS文件 FD 临时存储队列 TSQ 瞬时数据队列 TDQ TSQ 临时存储队列 用于多个事务间共享数据通常只有一条记录不定义即可使用 但对于REMOTE方式最好事先定义 超过指定时间后 自动被删除 可用CEBR浏览和删除 存储类型MAIN 在内存中 不可恢复 区域停止后丢失 AUXILIARY 在SFS中 可设置为可恢复 冷启动后才丢失 TDQ 瞬时数据队列 真正的先进先出队列多个记录 按顺序读取 读后被删除 需在区域启动前定义 TDD队列类型分区内TDQ 存储在SFS中Trigger 可触发执行事务 当队列元素数目达到指定大小 Recoverable属性 none 不可恢复physical 当区域异常中断后 可恢复最后一次读出的元素logical 根据LUW 可恢复分区外TDQ 存储在AIX文件系统中定长记录 不定长记录 特定字符 NULL 行 支持以文本行为记录单位 只读或只写 但不能以可读可写方式打开 可由所有分区的程序访问 开发注意事项 开发八大注意事项 注意事项 一 CICS不可使用的系统函数fork execl system 可用EXECCICSLINK XCTL START代替gethostbyname gethostbyaddr getprotent getservbyname 可用gethostbyname r gethostbyaddr r getprotent r getservbyname r 代替exit 用EXECCICSRETURN代替 注意事项 二 CICS不推荐使用的函数malloc 可用EXECCICSGETMAIN代替kill 用EXECCICSSETTASKPURGETYPE 代替exit 用EXECCICSRETURN代替 注意事项 三 CICS应用服务器会保留下列进程状态 因此在交易结束时应关闭 打开的文件句柄TCPIPSOCKET句柄环境变量当前工作目录进程级别共享内存动态申请的内存 注意事项 四 当CICS程序需要驻留内存时 PD的RESIDENT YES 慎用静态 static 变量 示例staticintval 0 val val 1 注意事项 五 尽量不使用结构来定义CommArea 因为其长度在各种机器上不一定相同 而用pack会影响效率 INT类型变量在各种机器上高低位不一定相同 在传递结构需转换 structCommAreaStru inta charstr 5 注意事项 六 数据库cursor操作完毕必须释放 EXECSQLDECLARECURSOR EXECSQLOPENCURSOR EXECSQLCLOSECURSOR EXECSQLDEALLOCATECURSOR 注意事项 七 使用动态SQL语句时由数据库自动申请的pSQLDA空间 应用程序必须释放 EXECSQLPREPARE EXECSQLDESCRIBE INTOpSQLDA 注意事项 八 程序结束需显式删除临时表 EXECSQLSELECT FROMtable1INTOTEMPtmptable EXECSQLDROPTABLEtmptable 编译与调试 编译与调试 相关目录 var cics regions CICSRGx bin应用程序data数据文件 队列 编译CICSSERVER程序 没有SQL语句时 cicstran lCs ccs s c CICS预编译cc L CICS lib lcics api emain I CICS include oss c s或 exportCCFLAGS L CICS lib lcics api emain I CICS includecicstcl lCs ccs s有SQL语句时 cpres pc s c SYBASE预编译mvs c s ccscicstran lCs ccs s ccc L CICS lib lcics api emain I CICS include oss c s usr lpp cics src samples有makefile示例 CICSSERVER程序注册 PD中注册程序smittycics ManageCICSRegions DefineCICSResources ProgramDefinations程序名 8个字符路径 var cics regions CICSRGx bin 系统运行日志 交易日志 var cics region CICSRGx data CSMT out系统日志 var cics region CICSRGx console msg程序中printf的内容打印到console msg可用vi tail cicstail命令查看内容 CICS系统日志中显示的错误 Axxy Ummnn ABEND代号xx PC 程序控制错误xx SR 系统恢复错误常见错误代码 AEIO 在指定的路径下没有找到执行程序 ASRA 类似UNIX下的coredump AEY7 安全检查错误 PD中应设为public 检查CICS用户安全级别和PD中程序的级别是否匹配 APCT PD中未定义或未激活 CICS不可用 查看错误代码说明 info lcics sAEIO 常用CICS语句 常用CICS语句 LINK XCTL SYNCPOINT ASKTIME FORMATTIME INQUIRE EXECCICSINQUIREFILE PROGRAM TDQUEUE TSQUEUE 获得指定资源的相关信息 GETMAIN FREEMAIN ENQ DEQ READQTD WRITEQTD DELETEQTD READQTS WRITEQTS DELETEQTS DELAY CANCEL READ EXECCICSREADFILE name INTO dataarea SET ptr RIDFLD data area 读文件中的一条记录文件必须在FD中定义RIDFLD可指定记录位置 字节位置或KEY值 WRITE EXECCICSWRITEFILE name FROM dataarea RIDFLD data area 向文件写一条记录文件必须在FD中定义 STARTBR EXECCICSSTARTBRFILE name RIDFLD data area 开始顺序检索文件中的记录文件必须在FD中定义 READNEXT EXECCICSREADNEXTFILE name INTO dataarea SET ptr RIDF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论