《IBMTXSeriesCICS管理.ppt》由会员分享,可在线阅读,更多相关《IBMTXSeriesCICS管理.ppt(45页珍藏版)》请在三一办公上搜索。
1、IBM TXSeries CICS管理(2),刘睿,概要,CICS系统间通信(ISC)概述CICSTCP与PPCTCPSNA连通性IPIC通信的安全认证代码页转换负载均衡和高可用性硬件的实现应用级实现CTG/CUC的工作负载管理器CTG/CUC的用户出口程序通过MQ集群的实现TXSeries的集群实现TXSeries负载均衡和高可用性-综合使用的成功案例,CICS系统间通信(ISC),CICS系统间通讯(ISC),同步级别(SyncLevel),SyncLevel 0(Non XA)提交(Commit)SyncLevel 1(One phase XA)提交(Commit)提交返回(Commit
2、 Return)SyncLevel 2(Two phase XA)准备(Prepare)准备返回(Prepare Return)提交(Commit)提交返回(Commit Return),CD:ConnectionType,CICS family TCP/IP支持Sync Level 0,1PPC TCP/IP支持Sync Level 0,1,2Local SNA支持Sync Level 0,1PPC Gateway支持Sync Level 0,1,2,如何使用cics_tcp方式建立两个CICS域的互连,1.添加侦听定义(Listener Definition)域名 LD名 TCPServi
3、cename TCPAddress Protocol CICS01 LI1 cicsp1 11.11.1.1 TCPCICS02 LI1 cicsp2 11.11.1.2 TCP 对于CICS01域,使用下面命令添加一个新的侦听定义 LI1(其中服务名cicsp1在/etc/services文件中对应的端口为1416):cicsadd-c ld-r CICS01 LI1 TCPServicename=cicsp1 TCPAddress=11.11.1.1 Protocol=TCP对于CICS02域,使用下面命令添加一个新的侦听定义LI1(其中服务名cicsp2在/etc/services文件中
4、对应的端口为1417)cicsadd-c ld-r CICS02 LI1 TCPServicename=cicsp2 TCPAddress=11.11.1.2 Protocol=TCP2.添加一个通讯定义(Communication Definition)域名 CD名 RemoteLUName RemoteTCPAddress RemoteTCPort ListenerName CICS01 TEL2 CICS02 11.11.1.2 1416 LI1 CICS02 TEL1 CICS01 11.11.1.1 1417 LI1 其中RemoteLUName为对方CICS域的域名,RemoteT
5、CPAddress 为对方CICS域的侦听定义中TCPAddress指定的IP地址,RemoteTCPort为对方CICS域的侦听定义中TCPServicename指定的服务名所对应的端口号,ListenerName为上面定义的本机侦听定义名。对于CICS01域,使用下面命令添加通讯定义TEL2:cicsadd-c cd-r CICS01 TEL2 ConnectionType=cics_tcp RemoteLUName=CICS02 RemoteTCPAddress=11.11.1.2 RemoteTCPort=1417 ListenerName=LI1 对于CICS02域,使用下面命令添加
6、通讯定义TEL1:cicsadd-c cd-r CICS02 TEL1 ConnectionType=cics_tcp RemoteLUName=CICS01 RemoteTCPAddress=11.11.1.1 RemoteTCPort=1416 ListenerName=LI1 3.重新冷启CICS域,如何使用ppc_tcp方式建立两个CICS域的互连,1.配置环境变量CICS_HOSTS例:CICS_HOSTS=hostA hostB以空格为间隔列出所有拥有CICS域的主机名。2.添加一个通讯定义(Communication Definition)域名 CD名 RemoteLUNameC
7、ICS01 TEL2 CICS02CICS02 TEL1 CICS01其中RemoteLUName为对方CICS域的域名。对于CICS01域,使用下面命令添加通讯定义TEL2:cicsadd-c cd-r CICS01 TEL2 ConnectionType=ppc_tcp RemoteLUName=CICS02对于CICS02域,使用下面命令添加通讯定义TEL1:cicsadd-c cd-r CICS02 TEL1 ConnectionType=ppc_tcp RemoteLUName=CICS013.重新冷启CICS域,PPCTCP注意事项,PPCTCP必须设置双向CD,并在双方定义环境变
8、量CICS_HOSTS。如果使用PPCTCP或RPC Client,必须使用已定义的用户,否则有安全错误。发现/etc/hosts中主机名对应,或者主机名采用localhost,都是不允许的。CICS_HOSTS指定的主机顺序不对,应检查系统的CICS Region environment文件,一般把本机放在前面。使用小写的域名可能导致访问失败。,TXSeries v5.1设置PPCTCP连接使用动态绑定方式,1.概述TXSeries v6以后版本的PPC_TCP采用了动态绑定方式。TXSeries v5.1与过去的版本进行PPC_TCP连接时采用的是默认的方式,如果要与TXSeries v6
9、以后版本进行PPC_TCP连接必须使用环境变量设置动态绑定方式。动态连接方式的好处是避免force purge后可能产生的一种叫做one-cicsas的故障。2.版本要求确保/usr下有足够的空闲空间(至少1G以上)-TXSeries CICS 5.1 PTF4以上,比如可以使用TXSeries PTF7-ENCINA 5.1 PTF1 IFIX-21以上,比如可以使用Encina PTF2可以在网站选择来下载这些补丁3.设置动态绑定方式1)在/etc/environment文件设置除去RPC_SUPPORTED_PROTSEQS除去ENCINA_BINDING_FILE除去CICS_HOST
10、S设置ENCINA_BINDING_ENDPOINT_HOSTS=2)在region的environment文件设置设置ENCINA_BINDING_ENDPOINT_HOSTS=如果有多个,需要用空格分隔,不必写本机名称或IP地址。3)停止所有CICS进程,重新登陆,重建DCE,启动SFS和region。重建DCE前,确保当前环境满足以下条件(使用env命令):没有设置RPC_SUPPORTED_PROTSEQS没有设置ENCINA_BINDING_FILE没有设置CICS_HOSTS设置了ENCINA_BINDING_ENDPOINT_HOSTS=,使用IBM Communication
11、Server配置CICS SNA Gateway和Local SNA(1),SNA Resource配置1.配置Node Definition2.配置Connectivity-DLCs,Ports,Link Stations2.1 配置DLC2.2 配置Port2.3 配置Link Station3.配置LU 6.2-Transaction Programs(TP)3.1 配置LU 6.2 Transaction Programs Definitions3.2 配置LU 6.2 Transaction Load Information4.配置LU 6.2-LUs4.0 配置LU 6.2 LU
12、Definition4.1 配置LU 6.2 Partner LU Definition4.2 配置Partner LU 6.2 Location4.3 配置LU 6.2 Mode4.4 配置LU 6.2 Side Information5.权限设置:snaadmin define_trusted_groups,group_id=0,group_id=200,group_id=201检查组ID(例:200-cics,201-cicsterm)。,使用IBM Communication Server配置CICS PPC Gateway和Local SNA(2),建立PPC Gateway:设置环
13、境变量:CICS_PPCGWY_SERVER=/.:/cics/ppc/gateway/lrgwyENCINA_GWY_SERVER=/.:/cics/ppc/gateway/lrgwyCICS_PPCGWY_SIZE=128CICS_PPCGWY_VG=rootvg创建PPC Gateway:cicscp create ppcgwy_server/.:/cics/ppc/gateway/lrgwy(相关信息参见GSD和cicsppcgwycreate,cicsppcgwydestroy,cicsppcgwylock,cicsppcgwyshut),使用IBM Communication Se
14、rver配置CICS SNA Gateway和Local SNA(3),设置CICS资源1.RD:LocalNetworkName,LocalLUName2.CD:ConnectionType(local_sna|ppc_gateway),RemoteLUName,RemoteNetworkName,DefaultSNAModeName,GatewayName(用于ppc_gateway),ListenerName(用于local_sna),RemoteCodePageTR(例IBM-037),RemoteSysSecurity(例trusted)3.GD:GatewayCDSName(例lr
15、gwy或/.:/cics/ppc/gateway/lrgwy),GatewayLUName(要在Side Information中定义)4.LD:(用于Local SNA)Protocol(SNA),测试TXSeries的SNA的连通性,启动SNAsmitty sna观察SNA连通状态观察link station:sna-d l 观察session:sna-d sl 使用CICSTERM观察:CRTE SYSID=HOSTCEMT I CON,ECI TXSeries使用IPIC通信(举例),准备工作TXSeries 7.1必须至少打补丁1,建议打补丁2Java客户程序建议使用CTGv7.2.
16、0.2C客户程序建议使用配置CICS定义LDcicsadd-c ld-r CICS01 IPIC1 Protocol=IPIC TCPService=cics1436“#注:在/etc/services文件中定义cics1436。在客户程序的ECI的ServerName参数填写“tcp:/172.16.0.101:1436”,CICS TS与TXSeries使用IPIC通信(举例),准备工作TX 7.1必须至少打补丁1,建议打补丁2配置RDcicsupdate-c rd-r CICS01 LocalNetworkName=CNIBMB01 LocalLUName=CICS01定义LDcicsa
17、dd-c ld-r CICS01 IP1 Protocol=IPIC TCPService=“cics1436”TCPAddress=“9.181.157.51“#注:在/etc/services文件中定义”cics1436”。#注:TXSERIES的IP和端口主机也需要定义。配置CDcicsadd-c cd-r CICS01 MF01 ConnectionType=cics_ipic ListenerName=IP1 RemoteTCPAddress=9.181.155.26 RemoteTCPPort=50000 RemoteLUName=CI01TAA0 RemoteNetworkNam
18、e=CNIBMB01 ReceiveCount=100 SendCount=100,CD的安全属性,对于CICSTCP,会自动生成匹配的CD。对于PPCTCP,要手工定义。CD:RemoteSysSecurity该属性指定了 CICS 如何处理与入站请求一同接收到的安全性信息,如用户标识和口令。它可以是以下三个值之一:local(默认设置)。表示废弃接收到的所有安全性信息,并将 LinkUserId属性中指定的用户标识分配给请求。verify 表示只能将所接收到的具有效口令的用户标识分配给入站请求。如果口令丢失或不正确,或者没有发送用户标识,则将使用RD 条目属性 DefaultUserId
19、中指定的用户标识。trusted 无论接收到的用户标识是否带有口令,都允许将此用户标识分配给请求。如果没有发送用户标识,则将使用RD条目属性DefaultUserId中指定的用户标识。CD:OutboundUserIds您可将该属性设置成:sent(默认)。在本次连接的出站请求中发送用户标识。not_sent 禁止在本次连接的出站请求中发送用户标识。sent_only_with_pswd 发送用户标识及其口令。如果没有口令,则不发送用户标识。sent_maybe_with_pswd 发送用户标识及其口令。如果没有口令,则发送用户标识。发生作用的安全级别一旦分配了用户标识,就为该请求计算事务安全
20、性级别(TSL)和资源安全性级别(RSL)密钥。在所分配用户标识的用户定义(UD)条目,以及LinkUserId 属性中指定的用户标识的 UD 条目中都给出了请求的密钥。如果LinkUserId=,则将使用来自 RSLKeyMask 属性和TSLKeyMask 属性的密钥,而不使用 LinkUserId 密钥。,在CICS跨平台通讯时如何使用安全检验(举例),CICS跨平台通讯时有两种安全方式:LINK和USER。其中LINK安全方式是较简单的模式。使用LINK方式可对所有跨系统的CICS请求作统一的安全检验。LINK安全方式有两种实现办法如下:方法1:1)在CD定义中定义RemoteSysS
21、ecurity属性为local。cicsupdate-c cd-r CICS01 TEL1 RemoteSysSecurity=local2)在CD定义中定义LinkUserId属性为此连接所用的用户,比如TEST。所有此连接另一端的远程系统发上来的请求都将使用此用户。cicsupdate-c cd-r CICS01 TEL1 LinkUserId=TEST3)增加一个用户定义给在步骤1中指定的LinkUserId。此用户的TSLKeyList和RSLKeyList属性将用来定义所有跨系统请求可以使用的交易和资源。cicsadd-c ud-r CICS01 TEST TSLKeyList=1|
22、2|3 RSLKeyList=1|2|3方法2:1)在CD中定义RemoteSysSecurity属性为local。cicsupdate-c cd-r CICS01 TEL1 RemoteSysSecurity=local2)在CD中不指定LinkUserId属性值。3)按照用户自己的安全需求,在CD定义中指定RSLKeyMASK和TSLKeyMASK值,这两个属性将用来定义所有跨系统请求可以使用的交易和资源。cicsupdate-c cd-r CICS01 TEL1 RSLKeyMask=1|2|3 TSLKeyMask=1|2|3,Data residing on systems can
23、store data in different character encodings.Two known character encodingsExtended Binary-Coded Decimal Interchange Code(EBCDIC)Format used on IBM Mainframe based systems.American National Standard Code for Information Interchange(ASCII)Format used on TXSeries based CICS system.Data which is transfer
24、red between two systems needs to be converted appropriately for the other system to understand and interpret the data.For Example,CICS converts some data such as the file names in function shipping requests.,CICS系统间通讯数据转换,DFHCNV工具,DFHCNV(资源代码页自动转换)的原则0.必须安装所需字符集1.如果COMMAREA或FS数据段数据规则,可以实现数据自动转换。2.在资
25、源的拥有者处定义转换3.可以转换的资源包括:PD通信区,FILE,TDQ,TSQ,设置PD通信区代码页自动转换1.编写DFHCNV脚本文件:例如:DFHCNV TYPE=INITIAL,CLINTCP=,SRVERCP=DFHCNV TYPE=ENTRY,RTYPE=PC,RNAME=.DFHCNV TYPE=FINAL2.使用cicscvt命令编译DFHCNV脚本:“cicscvt”生成.PD.cnv3.改名并拷贝到域的bin目录:“cp.PD.cnv/var/cics_regions/database/PD/.cnv”4.定义PD:TemplateDefined=yes(当然还要定义Rem
26、oteSysId=,RemoteName=),TXSeries负载均衡和高可用性,TXSeries负载均衡和高可用性的实现方法,硬件的实现应用级实现CTG/CUC的工作负载管理器CTG/CUC的用户出口程序通过MQ集群的实现TXSeries的集群实现TXSeries负载均衡和高可用性-综合使用的成功案例,1.TXSeries负载均衡和高可用性-硬件的实现,使用硬件+操作系统的HA实现(例如:AIX HACMP)优点:为TXSeries服务器提供了可靠的High Availability缺点:不支持负载均衡使用硬件负载均衡器(“4层交换”)优点:高性能、安装简易缺点:CICS客户机数量少的情况下
27、难以做到完美的负载分布。ECI的长连接方式使路由切换只在前后端停机或者网络中断时才会发生。难以支持服务器之间的Sync Level 2的通信的切换。,利用硬件负载均衡器的设计思想-实现例,2.TXSeries负载均衡和高可用性-应用级实现,描述:利用CTG/CUC可以连接任意多个CICS/TXSeries服务器的特性。方案1:如果CTG调用(JavaGateway.flow)返回的ECI值为-3(ECI_ERR_NO_CICS)或者-4(ECI_ERR_CICS_DIED),则认为该域不可获取,切换到另一个域。方案2:在CTG的调用发生任何错误(判断的依据是在JavaGateway.flow方
28、法后调用ECIRequest.getRc()不等于0)后,调用ECIRequest.getStatus查当前服务器和客户机的状态。注:设置SECTION SERVER:CONNECTTIMEOUT设定TCP建立连接的最大时间,默认为0(不超时)。通过设置,可以减少状态为“Connecting”的时间,如果不是“Available”,就是“Unavailable”。这个参数对防止挂死有帮助。优点:无须配置缺点:为编程引入很多复杂性不容易做到动态配置不能做到动态负载均衡,3.TXSeries负载均衡和高可用性-CTG/CUC的工作负载管理器(步骤1:激活工作负载管理器),TXSeries负载均衡和
29、高可用性-CTG/CUC的工作负载管理器(步骤2:定义服务器组),TXSeries负载均衡和高可用性-CTG/CUC的工作负载管理器,描述:ECI扩展调用不会轮换服务器支持Round Robin和针对各个程序的Bias方式不断地轮换服务器,并周期性查询故障服务器是否恢复注意:eci_version=ECI_VERSION_1A优点:应用基本不用修改,比较灵活缺点:目前只在Windows上为ECI实现不能做到动态负载均衡配置变动,要修改客户机的配置文件CTG.INI。如果客户机很多,可能是个问题。某些应用不希望随时轮换服务器,会影响性能(比如EasyCICS)。无法仅对指定的若干服务器实现负载均
30、衡,4.TXSeries负载均衡和高可用性-CTG/CUC的用户出口程序,入口函数为CICS_ECIEXITINIT,将所有其它回调函数指针写入数据块,成功后调用CICS_EciInitializeExit函数(初始化)。每次ECI调用都会顺序进入ExternalCallExit1,DataSend,DataReturn,ExternalCallExit2等函数。其中ExternalCallExit1和ExternalCallExit2函数可以用来对CA加密。在ExternalCallExit1中可以通过修改ParmPtr-eci_system_name来重定向目的地,以达到WLM的目的。调用
31、/查询非法的SystemId或者调用unavailable的SystemId,会进入CICS_EciSystemIdExit函数,可以通过修改ParmPtr-eci_system_name来重定向目的地,以达到HA的目的。各处理函数有以下参数:Anchor参数是共享的数据指针;Token参数是同一Task的令牌;ParmPtr参数指向ECI数据块。,TXSeries负载均衡和高可用性-CTG/CUC的用户出口程序,优点:应用基本不用修改,比较灵活缺点:没有客户成功案例。要在客户机部署出口程序。如果客户机很多,可能是个问题。不能做到动态负载均衡配置变动,可能要修改客户机的配置文件CTG.INI。
32、如果客户机很多,可能是个问题。,5.TXSeries负载均衡和高可用性-通过MQ集群的实现,TXSeries负载均衡和高可用性-通过MQ集群的实现,优点:实现High Availability和Load Balance的实现有成功案例缺点:必须引入MQ作为前置系统需要较多的机器配置HA的配置比较复杂对高性能系统需要调整来保证MQ触发CICS交易的默认机制,6.TXSeries负载均衡和高可用性-TXSeries WLM 典型配置,COR,AOR,COR,AOR,AOR,AOR,Database,TXSeries WLM功能说明,COR支持AIX和Solaris平台不用于管理。前后调用不能有关联
33、性。,TXSeries负载均衡和高可用性-TXSeries目前的集群实现-基本概念(2),Client Owning Region(COR)此类Region用以接收客户请求,并决定请求最终在何处被处理,该Region中没有实际的程序代码。Application Owning Region(AOR)最终的处理应用请求的Region,被请求的程序或交易的物理代码安装在此类Region上。Routing PointCICS请求的路由发生点CICS region for AIXCICS RPC Client for AIX(在TXSERIES v6以后取消),TXSeries负载均衡和高可用性-TXS
34、eries目前的集群实现-基本概念(2),WAP(Workload Management Application Program cache)Global Cache 全局路由信息缓存WCM(Workload Management Cache Manager)Local Cache 本地路由信息缓存WCL(Workload Management Client)MonitorsHMON(Health Monitor)RMON(Routing Monitor)WLM-provided user exit codesWLM command setConfiguration filesInitiali
35、zation file(cicssm.config)Configuration file(wlm.cfg),WAP&WCM,Routing Information CacheWAPGlobal Static Cache存放初始路由信息从Configuration file中加载信息Central Control Point of a CICS WLM ConfigurationWCMLocal Dynamic Cache由WCL从WAP中请求信息存入其中一个节点中的所有WCL共用一个WCMWAP维护一块公用内存,可与装COR的机器(COR机)逻辑分开,,装AOR的机器(AOR机)无须WLM软件
36、。COR机须安装WCM,维护一块WCM缓存,与WAP通信。HMON用于监控WAP,RMON用于监控WCM。,WCL(Workload Management Client),内置组件无须启动和停止每个Routing Point(Region)对应一个WCL实际路由处理工作的执行者每个节点中可同时配置多个Routing Point(Region),HMON(Health Monitor),实时监控Region的运行状况可选组件与WAP配置在同一节点RPC CICS EPI ApplicationPollingBHG_HMON_POLLING_INTERVAL=30HMON检测值1 CICS sys
37、tem is running and can be contacted2 CICS system is not running,host on which that system runs can be contacted3 Neither the CICS system,nor machine on which it runs,can be contacted,RMON(Routing Monitor),图形程序,跟踪显示WCM的变化状况与WCM配置在同一节点只能检测本节点的WCM,配置文件:/var/cicssm/repos/cicssm.config,为各组件提供WAP所在位置信息 wa
38、p_name node portwap wap1 workinghost 9123 命令cicswlm configure wlm加载初始化文件必须先于所有其他命令执行,只需执行一次在每个安装WLM组件的节点都要执行,配置文件:/var/cicssm/repos/wlm.cfg,提供WLM涉及的资源的信息定义了对象模型(Object Model)是WAP中存储信息的来源,TXSeries WLM 组织结构,TXSeries负载均衡和高可用性-TXSeries WLM,优点:是比较智能的High Availability和Load Balance的实现缺点:安装配置比较复杂需要较多的机器配置COR处需要配合硬件的HA保护,否则成为单点故障大型系统需要多个COR,增加了系统的复杂性,TXSeries负载均衡和高可用性-综合使用的成功案例,