cics_使用IBM AIX上的CICS Transaction Gateway将IBM WebSphere集成到CICS中
介绍
此方法涵盖了使用在远程模式下部署的IBMAIX®上的CICS事务网关将IBM WebSphere Application Server集成到CICS,该远程模式通过传输控制协议/ Internet使用外部呼叫接口(ECI)与IBM z /OS®上的CICS事务服务器进行通信。协议(TCP / IP)。 它使为启发式条件设计的客户端J2EE应用程序能够访问CICS中的现有程序。
环境设定
- CICS事务网关(CTG)提供了将安装在WebSphere Application Server中的ECI CICS资源适配器。
- 符合J2EE连接器体系结构(JCA)的Java™应用程序将部署在WebSphere集群环境中。
- WebSphere托管环境将提供可共享的连接,这些连接不会在关闭调用时释放回池中。
- CTG和WebSphere将在AIX逻辑分区(LPAR)节点上运行。
- CTG将通过CTG网关守护程序以提供连接管理器和工作线程的远程操作模式进行部署。
- CICS客户端将使用TCP / IP上的ECI连接到CICS事务服务器。
- 部署在AIX LPAR上的CTG将硬连线到CICS区域(z / OS)。
使用的软件
- AIX 6.1上的WebSphere Application Server网络部署v7.0.0.13
- 适用于AIX6.1的CICS Transaction Gateway版本7.2.0.2
- CICS Client for AIX版本7.2.0.2
- 适用于z / OS的CICS Transaction Server版本3.2
- z / OS上的IBMDB2®9.1
- z / OS 1.11
- 资源适配器ECI 7.2.0.2(即cicseci.rar文件)
可以使用ctgstats
管理命令来确定CTG的软件版本,而cicscli –v
命令将提供CICS客户端的版本。 这些软件版本必须处于同一级别(例如V7.2.0.2),这一点很重要。
CICS交易网关
AIX平台上的CICS Transaction Gateway将为WebSphere提供编程和部署工具,以连接到z / OS上的CICS Server,如图1所示。
图1.使用与CICS的ECI连接的WebSphere和CTG
![](/assets/blank.gif)
CICS资源适配器
CICS事务网关提供的ECI资源适配器将支持JCA定义的J2EE通用客户端接口(CCI),如图2所示。
图2. CICS ECI JCA资源适配器
![](/assets/blank.gif)
符合JCA的应用程序组件将以与其他任何标准资源工厂(例如JDBC资源工厂(javax.sql.DataSource))相同的方式与JCA实现的ECI资源适配器(系统级软件驱动程序)进行交互。 与JCA资源适配器的唯一区别在于,客户端可以使用特定于资源适配器(RA)的API和CCI API(由资源适配器支持)。
CICS ECI资源适配器(cicseci.rar)支持一阶段事务协议。 它避免了WebSphere和CTG之间不必要的XA流的任何开销,并使Java应用程序可以将多个JCA请求作为一个工作单元提交到同一CICS区域。
- 远程操作模式
CICS Transaction Gateway组件的使用基于其部署的操作模式。 (a)网关守护程序用于远程操作模式,因为它监听传入的工作并管理线程和连接。 (b)Client守护程序可以在远程以及本地操作模式下用于与CICS进行通信。
本地模式下不需要网关守护程序,因为CTG代码直接在应用程序服务器地址空间中运行。 在远程模式下,CTG以独立模式运行Gateway守护程序(如图3所示)。
图3.远程模式下的CTG
![](/assets/blank.gif)
在远程模式下,J2EE应用程序使用来自WebSphere的J2C连接与CTG Gateway守护程序的连接管理器通信(通过TCP),该CTG网关守护程序的连接管理器又将请求分配给工作线程。 CTG网关守护程序的连接在初始化(CTG.INI)文件的GATEWAY部分中进行配置。
清单1. CTG.INI-GATEWAY部分
SECTION GATEWAY
initconnect=1
initworker=1
maxconnect=100
maxworker=100
ENDSECTION
在上述结构中,连接管理器的最大数目(即, maxconnect
)和工作线程(即, maxworker
)已经被配置为100(默认)。 应基于负载模式或预期的工作负载优化此配置。 连接管理器线程的初始数量(即, initconnect
)和工作线程(即, initworker
)已经被配置为1。
在“客户端”部分的CTG.INI文件中配置了CTG客户端守护程序。
清单2. CTG.INI-CLIENT部分
SECTION CLIENT = * CPIPADDRESSMASK=00000000 LOGFILE=CICSCLI.LOG MAXBUFFERSIZE=32 MAXREQUESTS=256 MAXSERVERS=10 MAXWRAPSIZE=0 REMOTENODEINACTIVITYPOLLINTERVAL=60 SRVRETRYINTERVAL=60 TERMINALEXIT=EXIT TRACEFILE=CICSCLI.BIN
ENDSECTION
- 通讯协议
CICS客户端(CTG的一部分)使用ECI通过TCP / IP通信协议访问CICS区域,如图4所示。
图4. CTG-CICS通信协议
![](/assets/blank.gif)
在“网关”,“服务器”和“驱动程序”部分的CTG.INI文件中配置了TCP / IP协议。
清单3. CTG.INI – TCP / IP配置
SECTION GATEWAY
protocol@tcp.handler=com.ibm.ctg.server.TCPHandler
protocol@tcp.parameters=connecttimeout=2000;dropworking;idletimeout=600000;
pingfrequency=60000;port=xxxx;solinger=0;sotimeout=1000;
log@info.dest=console
log@error.dest=console
ENDSECTIONSECTION SERVER = xxxxx
UPPERCASESECURITY=N
PROTOCOL=TCPIP
NETNAME=xxxxxxx
PORT=xxxx
CONNECTTIMEOUT=0
TCPKEEPALIVE=N
ENDSECTIONSECTION DRIVER = TCPIP DRIVERNAME=CCLIBMIP
ENDSECTION
适用于使用ECI资源适配器的Java客户机(WebSphere)的替代通信协议,即TCP / IP上的Internet协议互连(IPIC),可用于AIX 6.1上的CTG V7.2与CIX Transaction Server V3.2上的通信。 z / OS。
WebSphere管理的连接环境
在WebSphere管理的连接环境中,符合JCA的J2EE应用程序使用WebSphere Application Server提供的服务质量。 连接是在WebSphere(资源适配器)J2C连接工厂定义中定义的,并且连接是可共享的(缺省情况下),也就是说,连接将由WebSphere保留并重用。 在托管模式下,不希望Java应用程序代码打开和关闭与CTG的连接。
交易管理和启发式条件
z / OS上的CICS和DB2支持用于事务的完整两阶段提交协议。 但是,CTG支持一阶段提交和最后一个参与者的支持,并且它模仿了具有两阶段功能的资源管理器。 最后的参与者支持可能对交易产生启发式的结果,其中交易管理器(WebSphere)可能不确定所有资源是否都沿相同方向完成(提交或回滚)。 在最后的参与者支持中接受启发式风险后,启发式结果风险增加。 如果事务服务(JTS)没有收到来自CTG上提交单阶段流的响应,则可能会产生启发式结果。 在这种情况下,事务服务无法确定CTG的更改是已提交还是已回滚,因此无法在剩余的两阶段提交资源(CICS / DB2)上可靠地驱动全局事务的正确结果。
可以在WebSphere中配置启发式重试限制值(如图5所示),该值可以根据应用程序设计以及与重复更新相比错过更新的含义来设置。
图5. WebSphere Application Server-启发式重试限制
![](/assets/blank.gif)
在确定启发式重试限制时,可以考虑以下两个事务方案。
- 方案1-由于网络或类似情况,事务在CICS系统上失败,因此数据不会在CICS中更新。
- 场景2-事务在CICS系统上工作,并且数据已更新,但是对WebSphere的响应被中断,因此WebSphere认为失败。
重试适用于方案1,但不适用于方案2。如果方案未知,则启发式重试限制值可以设置为0 (如图5所示)。
CTG拓扑
在每个AIX LPAR节点上,有一个CTG和两个WebSphere实例(集群的一部分)。 CTG链接到z / OS上的特定CICS区域,以沿事务路径服务客户机请求。
拓扑中总共有八个节点/ CTG和16个WebSphere Application Server(如图6所示)。 WebSphere J2EE应用程序通过CTG调用CICS程序,并使用JDBC访问DB2。
图6. CTG拓扑-使用网关守护程序进行部署
![](/assets/blank.gif)
每个节点上的两个WebSphere Application Server在线程池中每个线程最多配置50个Web容器线程(以通过HTTP协议满足客户机请求),节点上总共有100个连接。
每个CICS资源适配器在连接工厂定义中最多配置50个J2C连接,因此,到该节点上一个CTG的总合并最大数量为100个J2C连接。 该CTG网关守护程序被配置为与100个的连接管理器( maxconnect
)和100个工作线程( maxworker
)。
在JDBC连接池中,每个WebSphere Application Server中配置的数据源连接最多设置为50个,以便一次可以向DB2数据库请求总共100个连接的组合(节点上有两个应用程序服务器) 。
CTG部署的局限性
- ECI通信协议缺乏为事务提供会话全局工作单元ID的功能,这实际上使得将失败的事务从CTG链接到CICS几乎是不可能的。
- 与一阶段提交事务协议和最后参与者支持一起使用的CTG资源适配器要求接受启发式危害。 这会增加启发式结果的风险,交易服务可能无法确定是否已提交或回退了单阶段提交资源(即CTG)的更改,因此无法可靠地驱动全局事务的正确结果。其他参与的两阶段提交资源(即CICS和DB2)。
- CTG缺乏识别孤立线程或处于闲置状态的线程的能力,因此不再连接到客户端的那些连接管理器无法返回到空闲池,因为仍然有一个出色的工作线程正在等待工作去完成。
问题管理
与Websphere和CICS Transaction Gateway集成的环境中存在问题的行为(如果有)可能需要结合IBM技术支持来收集和分析适当的诊断信息。 WebSphere加速价值计划(提供给高级支持客户)促进了这种情况的问题管理。
为了进行故障排除,可能需要以下某些日志和跟踪数据。
(a)WebSphere日志
WebSphere系统输出日志(例如SystemErr和SystemOut)提供了错误消息发生时的详细信息,例如,清单4中给出的ConnectionManagers(CTG6562E)不足 。
清单4.连接管理器不足-CTG6562E
09:19:38:054 tcp: .ThreadManager: + Trying to allocate object again09:19:38:054 tcp: .ThreadManager: + !! Reached maximum number of objects !!09:19:38:054 tcp: .ThreadManager: + Timeout period is over09:19:38:054 tcp: S-C: CTG6562E Connection to tcp:@Socket[addr=127.0.0.1,port=xxxxx,localport=xxxx] rejected due to insufficient ConnectionManagers.
在这种情况下,可以增加CTG.INI文件中定义的连接管理器(maxconnect)的配置。 在此案例研究中,它从100增加到150。但是,它仅有助于延迟这种情况(连接不足)的发生。
(b)CTG跟踪数据
为了解决CTG问题,需要在CTG网关上跟踪数据。 在某些情况下,可能需要客户端守护程序跟踪(即cicscli.log)。
ctgstart -x
命令启动CTG并启用跟踪 ,而不带-x
参数的ctgstart
命令启动CTG,但将禁用跟踪 。
或者,可以从命令提示符处动态启用和禁用CTG 7.2 for AIX上的网关守护程序跟踪。 例如:
- 要动态启用完整的调试跟踪,请使用:
ctgadmin -a trace -tlevel=4
- 要动态禁用跟踪,请使用:
ctgadmin -a trace -tlevel=0
tlevel
选项如下:
- 0-不输出跟踪信息。
- 1-异常跟踪。 仅跟踪异常。
- 2-跟踪异常以及方法的进入和退出。
- 3-跟踪异常,一些内部信息以及方法的进入和退出。
- 4-完整的调试跟踪(所有跟踪点,等效于
ctgstart -x
)。
(c)WebSphere连接器跟踪
关于调查从WebSphere到CICS TG的连接的任何问题,将需要连接器跟踪。
清单5中给出了用于连接到企业信息系统(CICS)的连接器跟踪字符串。
清单5.连接器跟踪字符串
*=info:WAS.j2c=all:com.ibm.connector2.*=all:Transaction=all
可以在WebSphere中通过单击故障诊断>日志和跟踪>更改日志详细信息级别来配置此连接器跟踪字符串。
在出现问题之前,应先启动连接器跟踪。 有时,可能很难预测问题的表现。 在其他时候,当配置了跟踪并将其打开时 ,服务器可能似乎正在忙于进行跟踪,并且负载均衡器(在拓扑中)可以将请求分发给集群中的其他服务器,结果该问题可能不会在获取连接器跟踪的应用程序服务器上再次发生。
(d)Java系统跳转并提取数据
可能需要Java系统转储(IBM技术支持人员)来确定与CTG线程状态有关的问题,可以使用以下命令来收集它们:
清单6.系统转储
ctgamin -a dump -system
如果清单6中指定的命令不起作用,则可能有必要在CTG上使用-Xdump配置转储代理。 应该使用jextract(来自Java的bin目录)处理系统转储(如清单6所示),该文件会生成一个zip文件。 清单7显示了jextract命令的语法。
清单7. jextract命令
jextract [system_dump_name_as produced_above] (without the [ ] chars)
jextract运行级别必须与创建系统转储的Java级别相同。
(e)统计资料
可以使用CTG的统计API处理程序获取有关正在运行的CTG的有关连接和工作程序使用情况的统计信息。 可以使用清单8中所示的命令来收集stats输出。
清单8.统计数据
ctgadmin -a stats -gs > statscollected.out
CTG上的连接蠕变(例如,由于事务异常终止)可能会导致连接超时,这可以通过在当前和分配的连接管理器(CM_CCURR / CM_CALLOC)和工作线程(WT_CCURR / WT_CALLOC)上收集的统计数据来证明。 如图7所示,条形图说明了一段时间内收集到的有关分配的连接管理器和工作线程数量的统计数据。
图7.有关分配的连接管理器和工作线程的CTG统计信息
![](/assets/blank.gif)
在统计数据中,如清单9所示,当分配的(CM_CALLOC = 150)和当前使用的(CM_CCURR)连接管理器达到最大连接管理器数(CM_SMAX)的限制时,连接超时(CM_LTIMEOUTS = 1) = 150)。
清单9.统计数据
CTG8218I The command completed successfully===================================CTGAdmin - CICS Transaction Gateway Administration Program, version 7.2.0.2(C) Copyright IBM Corporation 2002, 2010. All rights reserved.CM - Connection managerCM_SMAX=150 (Maximum number of connection managers)CM_SINIT=1 (Initial number of connection managers)CM_CCURR=150 (Current number of connection managers)CM_CALLOC=150 (Currently allocated connection managers)CM_LTIMEOUTS=1 (Number of times connect time out reached)WT - Worker threadWT_SMAX=150 (Maximum number of worker threads)WT_SINIT=1 (Initial number of worker threads)WT_CCURR=145 (Current number of worker threads)WT_CALLOC=136 (Currently allocated worker threads)
因此,统计信息有助于检查来自用户应用程序的请求如何通过事务网关进行。
结论
已经通过独特的拓扑论证了WebSphere与CICS Transaction Gateway的集成以访问CICS,并着重于诊断和管理有问题的场景以确保集成环境的可用性。 这将对那些决定拓扑或维护操作系统的人有所帮助。
翻译自: https://www.ibm.com/developerworks/aix/library/au-aix-cics_websphere/index.html
cics_使用IBM AIX上的CICS Transaction Gateway将IBM WebSphere集成到CICS中相关推荐
- AIX 如何在 IBM AIX 上配置 YUM 并创建本地存储库
文章目录 一.如何在 IBM AIX 上配置 YUM 并创建本地存储库 1. 相关基础 1.1 什么是aix系统 2. aix系统上安装yum命令 3. 创建一个本地的 YUM 存储库步骤 二.参考 ...
- ibm aix 抓包命令_在IBM AIX上模拟丢弃的TCP / IP数据包
本文介绍: AIX内核扩展,允许来往于指定主机的指定百分比的TCP / IP数据包被随机丢弃,以模拟不利的网络状况. 加载,激活和卸载内核扩展的实用程序. C和Java™实用程序,用于监视到达目标主机 ...
- ibm tivoli_使用Tivoli Access Manager进行电子商务的加密硬件,使用AIX上的IBM 4960进行WebSEAL的SSL加速
ibm tivoli 存档日期:2019年5月15日 | 首次发布:2007年10月4日 建立SSL会话最耗费计算资源的部分是解密发送到SSL服务器的SSL会话的公钥. 通过将SSL操作卸载到专用硬件 ...
- Step-By-Step在AIX上安装Oracle RAC
最近遇到一个项目,是在AIX5.3上安装ORACLE 9i RAC,说实话,ORACLE俺压根就没有接触过,我也是临危受命.感觉如同当年实施AS400的XSM项目一般.无奈,下载了N多本REDBOOK ...
- 官司一打 20 年,Linux 抄袭 Unix 终有定论,原告被 “ 熬死 ” 、IBM赔了上亿
来自公众号:Linux就该这么学 在正题之前,还是需要来讲一下Linux的起源 20世纪80年代,计算机硬件的性能不断提高,PC的市场不断扩大,当时可供计算机选用的操作系统主要有Unix.DOS和Ma ...
- AIX 上安装SSH
| AIX默认没有安装SSH,要在AIX上安装SSH,上网查阅资料整理如下: 软件下载地址: 1.https://www14.software.ibm.com/webapp/iwm/web/preLo ...
- IBM AIX:Java进程大小监视
本文将为您提供有关如何计算在IBM AIX 5.3+ OS上运行的Java VM进程的Java进程大小内存占用量的快速参考指南. 这是我关于该主题的原始文章的补充文章: 如何在AIX上监视Java本机 ...
- IBM AIX 5.3 系统管理 -- 系统启动过程详解
一. 启动过程 启动过程包含下面的一些步骤: 1.1启动一个系统的初始步骤是上电自检(Power On Self Test,POST).其目的是验证基本硬件是否处于正常的工作状态.同时初始化内存.键盘 ...
- 最大化 AIX 上的 Java 性能,第 3 部分: 更多就是更好
http://www.ibm.com/developerworks/cn/aix/library/es-Javaperf/es-Javaperf3.html 最大化 AIX 上的 Java 性能,第 ...
最新文章
- Spark集群部署(standLone)模式
- GridView 类型公开的所有成员(公共属性、公共方法、私有属性.......)
- php方法数组注释,php中的注释、变量、数组、常量、函数应用介绍
- 2021春季学期-创新设计与实践-Lesson4
- 0.1+0.2==0.3?
- mysql实时读写_[DataBase] MySql 查看实时日志
- 报文在三次握手过程中丢失怎么办?
- JavaScript中关键字和保留字有哪些
- php核销次数,人人商城记次时商品核销时展示剩余积分 - YangJunwei
- Java笔记-AnnotationConfigApplicationContext在Spring中的例子
- Linux 下开机自动重启脚本
- python中用turtle绘制正方形_在Python-Turtle图形中创建正方形和旋转正方形的简单方法...
- 命令行下修改文件访问控制权限
- 最早设计计算机的目的是进行科学计算,其主要计算的问题面向,北京师范大学计算机试题1答案...
- 易观分析联合中小银行联盟发布海南数字经济指数,敬请期待!
- 基于Proteus仿真8253音乐发生器
- android Aidl原理分析
- 阿里云直播服务开通配置流程
- 速卖通代运营说:速卖通太难了!2020去做不算晚,但是也绝对不早!
- violate,synchronized