cics

    技术2024-06-19  111

    介绍

    此方法涵盖了使用在远程模式下部署的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

    CICS资源适配器

    CICS事务网关提供的ECI资源适配器将支持JCA定义的J2EE通用客户端接口(CCI),如图2所示。

    图2. CICS ECI JCA资源适配器

    符合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

    在远程模式下,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通信协议

    在“网关”,“服务器”和“驱动程序”部分的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 ENDSECTION SECTION SERVER = xxxxx UPPERCASESECURITY=N PROTOCOL=TCPIP NETNAME=xxxxxxx PORT=xxxx CONNECTTIMEOUT=0 TCPKEEPALIVE=N ENDSECTION SECTION 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-启发式重试限制

    在确定启发式重试限制时,可以考虑以下两个事务方案。

    方案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拓扑-使用网关守护程序进行部署

    每个节点上的两个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 again 09:19:38:054 tcp: .ThreadManager: + !! Reached maximum number of objects !! 09:19:38:054 tcp: .ThreadManager: + Timeout period is over 09: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统计信息

    在统计数据中,如清单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 manager CM_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 thread WT_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

    相关资源:华工IBM大型机CICS课程实验3
    Processed: 0.014, SQL: 9