- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CICS培训笔记
2004年8月27日
马建伟
CICS:客户信息控制系统,起源于大机,诞生于1969年,1998年更名为TX Serials,最后又集成到Web Sphere家族
CICS的编程方式:
EPI:针对3270终端,现在比较少
ECI:一般客户端编程
CICS是三层架构应用服务器,CICS是TPM(事务处理监视器)
二层架构的缺点:
主要使用SP(存储过程),各数据库存储过程不兼容,造成数据库移植困难
使用SP描述业务逻辑,数据库服务器只能增加内存和CPU速度,扩展性差,所以会形成Bottle Neck(瓶颈)
不支持TP
三层架构的特点:
一般不建议使用SP,但在性能要求高时也可以使用
业务逻辑实现在应用服务器,可以横向扩展,负载平衡
SFS:有TPM功能的文件系统
2 Phase Commit(两阶段提交):访问2个以上的数据源实现数据完整性
提交各数据库前,先向各数据库请求prepare,并锁住相关资源,确保提交时能够成功,数据库自动记录日志
TPM记录整个事务日志
这样两阶段提交确保了数据完整性,但是由于各数据库可能有异常,导致整个事务长时间等待,系统性能大大降低
XA:X/Open组织定义的标准,包括2 Phase Commit的标准
CICS有很多操作系统的版本,但是没有SCO和Linux的服务端版本,没有正式的SCO和Linux的客户端版本
CICS不能保存客户端连接的状态信息,类似与EJB中的Stateless的Session Bean
CICS客户端连接方式:主要有TCP/IP,SNA
DCE(分布式计算环境):目前一般使用RPC(Remote Procedure Call) Only
Encina也是CICS的一个分支,但是已不作发展
CICS的Java客户端连接需要安装CICS Transaction Gateway,但一般Java客户端如果与CICS客户端在一台机器,就可以使用JNDI访问
Region(区域):CICS Server的一个实例,资源定义一般保存在SFS,但也可以使用数据库
Region的事务资源的定义一般用于EPI编程
CICS客户端连接一般使用CICS用户认证,但也可以使用DCE认证
CICS队列
TSQ:临时数据队列
TDQ:瞬时数据队列
CICS连接数据库
non_XA:程序中主动调用Connect语句连接数据库
XA:程序中不调用Connect语句连接数据库,连接由CICS管理
CICS客户端和服务端通过commArea内存块交互数据
LUW:Logical Unit of Work,逻辑工作单元,即数据库的事务
CICS AS:CICS应用服务器,一个事务相关的程序在一个CICS AS进程运行
CICS异常处理顺序:停止CICS AS中运行的程序,如果不行则杀CICS AS进程,如果不行则杀DB连接
CICS API命令:EXEC CICS 命令
ABEND:抛出异常
HANDLE ABEND:捕获异常
RETURN:返回客户端
GETMAIN:CICS中申请变量空间,RETURN时释放(除GETMAIN SHARED)
FREEMAIN:释放GETMAIN SHARED申请的空间
LINK:调用另一个程序
XCLT:将程序转到其他程序,由那个程序返回客户端
START:异步调用另一个程序
DELAY:延时
SynPoint:提交事务,一般提交操作不放在服务端,建议在客户端来控制
开发CICS程序注意的问题
不同CPU的非字符型数据类型的高低位顺序不同和自动字节补齐等问题,所以INTEL客户端数据传送到RISC服务端不正确,需要通过转化
客户端传递的数据缓冲不能超过32K
任何资源(文件、SOCKET、环境变量、共享内存)申请后注意释放和恢复
建议使用GETMAIN命令申请内存空间,尽量不使用alloc
建议使用同步方式调用服务端,即使是异步方式,也需要等调用的程序完成才能调用其他程序
使用线程安全
不要使用exit命令
Region的程序配置建议不要设置事先载入,否则更新程序需要停止Region才行
Easy CICS:2000年诞生,为了实现CICS编程简单而设计的API接口
服务端支持C语言,客户端支持C/Java/Ole
Ole方式连接不支持多线程
客户端提交数据仍不能超过32K,但是返回结果集可以超过32K
基于文本方式传送数据
Call调用前调用BeginWrite清空缓冲
一般使用CallAndCommit调用服务端程序直接提交
调用Call后使用GetError方式获取错误信息
服务端程序不需要CICS预编译
Easy CICS API:
InitCICS
GetValue
SetValue
BeginWrite
GetError
ExitEas
文档评论(0)