此方法涵盖了使用在远程模式下部署的IBMAIX®上的CICS事务网关将IBM WebSphere Application Server集成到CICS,该远程模式通过传输控制协议/ Internet使用外部呼叫接口(ECI)与IBM z /OS®上的CICS事务服务器进行通信。协议(TCP / IP)。 它使为启发式条件设计的客户端J2EE应用程序能够访问CICS中的现有程序。
可以使用ctgstats管理命令来确定CTG的软件版本,而cicscli –v命令将提供CICS客户端的版本。 这些软件版本必须处于同一级别(例如V7.2.0.2),这一点很重要。
CICS交易网关
AIX平台上的CICS Transaction Gateway将为WebSphere提供编程和部署工具,以连接到z / OS上的CICS Server,如图1所示。
CICS资源适配器
CICS事务网关提供的ECI资源适配器将支持JCA定义的J2EE通用客户端接口(CCI),如图2所示。
符合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所示)。
在远程模式下,J2EE应用程序使用来自WebSphere的J2C连接与CTG Gateway守护程序的连接管理器通信(通过TCP),该CTG网关守护程序的连接管理器又将请求分配给工作线程。 CTG网关守护程序的连接在初始化(CTG.INI)文件的GATEWAY部分中进行配置。
在上述结构中,连接管理器的最大数目(即, maxconnect )和工作线程(即, maxworker )已经被配置为100(默认)。 应基于负载模式或预期的工作负载优化此配置。 连接管理器线程的初始数量(即, initconnect )和工作线程(即, initworker )已经被配置为1。
在“客户端”部分的CTG.INI文件中配置了CTG客户端守护程序。
CICS客户端(CTG的一部分)使用ECI通过TCP / IP通信协议访问CICS区域,如图4所示。
在“网关”,“服务器”和“驱动程序”部分的CTG.INI文件中配置了TCP / IP协议。
适用于使用ECI资源适配器的Java客户机(WebSphere)的替代通信协议,即TCP / IP上的Internet协议互连(IPIC),可用于AIX 6.1上的CTG V7.2与CIX Transaction Server V3.2上的通信。 z / OS。
在WebSphere管理的连接环境中,符合JCA的J2EE应用程序使用WebSphere Application Server提供的服务质量。 连接是在WebSphere(资源适配器)J2C连接工厂定义中定义的,并且连接是可共享的(缺省情况下),也就是说,连接将由WebSphere保留并重用。 在托管模式下,不希望Java应用程序代码打开和关闭与CTG的连接。
z / OS上的CICS和DB2支持用于事务的完整两阶段提交协议。 但是,CTG支持一阶段提交和最后一个参与者的支持,并且它模仿了具有两阶段功能的资源管理器。 最后的参与者支持可能对交易产生启发式的结果,其中交易管理器(WebSphere)可能不确定所有资源是否都沿相同方向完成(提交或回滚)。 在最后的参与者支持中接受启发式风险后,启发式结果风险增加。 如果事务服务(JTS)没有收到来自CTG上提交单阶段流的响应,则可能会产生启发式结果。 在这种情况下,事务服务无法确定CTG的更改是已提交还是已回滚,因此无法在剩余的两阶段提交资源(CICS / DB2)上可靠地驱动全局事务的正确结果。
可以在WebSphere中配置启发式重试限制值(如图5所示),该值可以根据应用程序设计以及与重复更新相比错过更新的含义来设置。
在确定启发式重试限制时,可以考虑以下两个事务方案。
方案1-由于网络或类似情况,事务在CICS系统上失败,因此数据不会在CICS中更新。 场景2-事务在CICS系统上工作,并且数据已更新,但是对WebSphere的响应被中断,因此WebSphere认为失败。重试适用于方案1,但不适用于方案2。如果方案未知,则启发式重试限制值可以设置为0 (如图5所示)。
在每个AIX LPAR节点上,有一个CTG和两个WebSphere实例(集群的一部分)。 CTG链接到z / OS上的特定CICS区域,以沿事务路径服务客户机请求。
拓扑中总共有八个节点/ CTG和16个WebSphere Application Server(如图6所示)。 WebSphere J2EE应用程序通过CTG调用CICS程序,并使用JDBC访问DB2。
每个节点上的两个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个连接的组合(节点上有两个应用程序服务器) 。
与Websphere和CICS Transaction Gateway集成的环境中存在问题的行为(如果有)可能需要结合IBM技术支持来收集和分析适当的诊断信息。 WebSphere加速价值计划(提供给高级支持客户)促进了这种情况的问题管理。
为了进行故障排除,可能需要以下某些日志和跟踪数据。
(a)WebSphere日志
WebSphere系统输出日志(例如SystemErr和SystemOut)提供了错误消息发生时的详细信息,例如,清单4中给出的ConnectionManagers(CTG6562E)不足 。
在这种情况下,可以增加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=0tlevel选项如下:
0-不输出跟踪信息。 1-异常跟踪。 仅跟踪异常。 2-跟踪异常以及方法的进入和退出。 3-跟踪异常,一些内部信息以及方法的进入和退出。 4-完整的调试跟踪(所有跟踪点,等效于ctgstart -x )。(c)WebSphere连接器跟踪
关于调查从WebSphere到CICS TG的连接的任何问题,将需要连接器跟踪。
清单5中给出了用于连接到企业信息系统(CICS)的连接器跟踪字符串。
可以在WebSphere中通过单击故障诊断>日志和跟踪>更改日志详细信息级别来配置此连接器跟踪字符串。
在出现问题之前,应先启动连接器跟踪。 有时,可能很难预测问题的表现。 在其他时候,当配置了跟踪并将其打开时 ,服务器可能似乎正在忙于进行跟踪,并且负载均衡器(在拓扑中)可以将请求分发给集群中的其他服务器,结果该问题可能不会在获取连接器跟踪的应用程序服务器上再次发生。
(d)Java系统跳转并提取数据
可能需要Java系统转储(IBM技术支持人员)来确定与CTG线程状态有关的问题,可以使用以下命令来收集它们:
如果清单6中指定的命令不起作用,则可能有必要在CTG上使用-Xdump配置转储代理。 应该使用jextract(来自Java的bin目录)处理系统转储(如清单6所示),该文件会生成一个zip文件。 清单7显示了jextract命令的语法。
jextract运行级别必须与创建系统转储的Java级别相同。
(e)统计资料
可以使用CTG的统计API处理程序获取有关正在运行的CTG的有关连接和工作程序使用情况的统计信息。 可以使用清单8中所示的命令来收集stats输出。
CTG上的连接蠕变(例如,由于事务异常终止)可能会导致连接超时,这可以通过在当前和分配的连接管理器(CM_CCURR / CM_CALLOC)和工作线程(WT_CCURR / WT_CALLOC)上收集的统计数据来证明。 如图7所示,条形图说明了一段时间内收集到的有关分配的连接管理器和工作线程数量的统计数据。
在统计数据中,如清单9所示,当分配的(CM_CALLOC = 150)和当前使用的(CM_CCURR)连接管理器达到最大连接管理器数(CM_SMAX)的限制时,连接超时(CM_LTIMEOUTS = 1) = 150)。
因此,统计信息有助于检查来自用户应用程序的请求如何通过事务网关进行。
已经通过独特的拓扑论证了WebSphere与CICS Transaction Gateway的集成以访问CICS,并着重于诊断和管理有问题的场景以确保集成环境的可用性。 这将对那些决定拓扑或维护操作系统的人有所帮助。
翻译自: https://www.ibm.com/developerworks/aix/library/au-aix-cics_websphere/index.html
相关资源:华工IBM大型机CICS课程实验3