• 快捷搜索
  • 全站搜索

Linux CICS联机交易技术创新应用

2017-11-22 10:20:16作者:中国农业银行软件开发中心 丁亚楠 王皓瑜 张锐编辑:金融咨询网
本文选择某交易相对频繁但业务影响可控的内部管理系统作为Linux CICS联机交易技术应用对象,建立小型机和PC服务器混合的联机交易平台,通过系统运行情况的监控,有效验证了Linux CICS的技术可行性、准确性与可靠性。

近年来银行系统普遍使用小型机作为CICS联机交易平台,联机交易技术比较成熟,但IBM提供的小型机设备成本高昂。随着高可用、分布式计算、负载均衡的集群化部署成为趋势,去小型机化将可行。本文选择某交易相对频繁但业务影响可控的内部管理系统作为Linux CICS联机交易技术应用对象,建立小型机和PC服务器混合的联机交易平台,通过系统运行情况的监控,有效验证了Linux CICS的技术可行性、准确性与可靠性。

背景及分析思路

  2013年11月,I BM公司发布CICS 8.1版本,增加了对Linux平台的支持,为Linux CICS联机交易技术在银行业的使用创造了可能。银行系统联机交易量大,系统开发工作量大。结合IBM主机和Li nux PC服务器集群的差异,与传统的AIX小机版的CICS联机交易技术相比,Linux CICS联机交易技术需要满足这些目标:银行系统必须遵守平稳迁移、不影响正常业务运行和发展的原则;银行联机交易系统必须考虑系统的稳定性、可扩展性和灵活性,可采用控制程序分发不同版本的CICS交易,实现多平台交易共同运行;稳定安全可靠的银行交易系统需要有适合PC server的联机交易框架和监控原则,避免主节点宕机造成系统异常;银行联机交易系统对出错容忍度较低,要求开发者技术熟练,注重技术细节。

方案设计

  本文采用逐步迁移、双管齐下的方法实现了CICS交易中间件从小型机迁移至国产X86通用服务器集群。

  1.设计思路。AIX小型机运行稳定、系统安全性较高、可扩展’陛强、CICS技术应用成熟、性能较高,缺点是设备昂贵、维护困难;PC服务器系统界面友好、管理方便、扩展灵活、性价比高、维护容易,但是稳定性、安全性差,单节点处理性能不够强。结合这些特点,CICS联机交易迁移至PC服务器需要考虑以下思路。

图片3.jpg

  稳定性和可扩展性:CICS在PC服务器上应用经验较少,PC服务器稳定性不如AIX小型机,需要采用PC服务器集群的方式代替AIX小型机。每个服务器节点独立部署,可扩展性和稳定性更强。

  高性能:单台PC服务器在处理能力、I/O和网络带宽上无法与小型机相比,采用4台同等配置的PC替换一台小型机的方式,可以提升PC服务器集群的处理能力。

  交易运行信息管理:PC服务器集群不适合使用总分模式管理交易运行信息。每个服务器节点单独管理交易运行信息,只在数据库中定期更新节点的交易统计信息,减轻数据库压力。

  高并发:行内的负载均衡技术已经比较成熟,PC服务器集群使用专门的负载均衡设备处理高并发,可以更好地体现集群的强大并发处理能力。

  2.总体方案设计。结合技术目标和设计思路,本文选取某内部管理系统进行设计。该系统的联机交易是基于AIX小型机采用“总分部署”的CICS集群。其中F5作为硬件负载均衡,只负责分发交易请求,由TOR作为CICS软负载,CS作为控制region,部署了总控程序、交易控制程序和交易量监控程序。总控程序负责调用其他AOR部署的交易,记录交易的调用信息,并在数据库记录交易运行信息;交易控制程序负责启停CICS集群,记录集群的交易统计信息;交易量监控程序被定期调用以获取交易量信息,并记录在数据库中。

  为实现A IX 和Suse Linux两个版本的CICS并行的策略目标,需要在某系统的前台逻辑中区别Suse Linux类型和AIX类型的联机交易,同时为各自类型的交易部署不同的交易服务器集群,这就需要在前台程序中实现特定的控制分发逻辑。我行在现有系统的架构中增加了一个F5负载均衡和多台PC服务器组成Suse Linux CICS服务集群,同时在前台程序端增加控制分发程序,由前台程序根据特定的交易路由表将CICS交易的调用分别发给AIX版CICS和Suse Linux版CICS。前台控制分发程序负责接收服务请求,按照路由表中的配置分发给不同的CICS服务器集群。

  系统在交易迁移过程中有AIX和Suse Linux两个版本的CICS同时运行。其中,Suse Linux平台的交易中间件集群由多台PC服务器构成(其中F5虽也是作为硬件负载均衡负责分发交易请求,但无软负载),集群中每台服务器都是一个独立的CICS服务器,通过数据库共享一些交易描述信息,每个节点部署单独的总控、交易控制和交易量监控程序。总控程序负责调用交易,记录节点的交易调用信息,保存和管理节点的交易运行信息;交易控制程序启停节点,每日定时更新数据库中该节点的交易汇总信息;交易量监控程序在被调用时反馈该节点的交易量信息,集群的交易量统计需要汇总每个节点的统计信息,服务器之间互不干扰(见图2)。

图片4.jpg
图2 Suse Linux CICS集群

  在系统运行方面,Suse Linux CICS集群的架构使得其容错性更加强大,可以减少因机器宕机造成系统运行失败的情况。两者系统的用户体验基本无差别,并发小于50的情况下Suse Linux CICS集群表现得更优秀。

  在数据库访问方面,Suse Linux CICS集群使用每个节点维护交易运行信息,数据库中只定期更新节点的交易统计信息;AIX CICS集群则是由CS统一更新数据库的交易信息。

  在日常运维方面,Suse Linux CICS集群需要对每台服务器进行运维,AIX CICS集群则可以通过软负载region完成所有服务器的运维。

  3.AIX到Linux CICS代码迁移。可以从以下方面着手字节序差异。IBM小型机、RISC处理器都采用大端字节序,就是高位字节排放在内存的低地址端即该值的起始地址,低位字节排放在内存的高地址端。PC服务器X86处理器则采用小端字节序,就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端。

  字节序并不会影响数据存储,也不会影响C风格字符串在计算机底层的存储。但是,对数据进行类型转换时,需要注意特定的字节序可能影响到类型转换的结果。特别是在单字节到多字节数据转换时,要检查是否有预期结果的偏差。

  AIX与Suse Linux链接器差异。AIX和Linux都支持对交易的静态库和动态库的创建、测试和调试,需要区分AIX链接器和Linux链接器的异同:AIX链接器使用可扩展的通用目标文件格式(XCOFF),而Suse Linux链接器使用可执行可链接格式(ELF);在装载定位方面,AIX链接器的符号解析都在链接时执行,简化了装载器的工作,其共享目标文件都是充分链接和解析的,符号引用在链接时解决,不能在装载时重新定位,而Suse Linux链接器在加载动态链接文件时会检查PLT中DYNAMIC段(该段中包含了装载器用来定位符号的标志值和指针)重新定位;在链接静态库时,AIX对链接库的顺序没有限制,而Suse Linux在链接静态库时,需要按顺序排列,被调用的底层库要放在后面,可能存在循环调用的问题,需通过使用Xliner参数来解决库顺序的问题。

  联机交易迁移C编译器差异。由于内部管理系统使用的都是标准C程序,大部分语法、格式和函数并未发生变化,仅有一些细微不同:Suse Linux的gcc编译器相对sco下的cc编译器更为严格,格式要求更高;一些常见的库函数在使用方式上也稍有不同,常见问题是参数为空指针导致程序崩溃。需要注意的常见函数有:strcpy()、strncpy()、strcmp()、strncmp()、fclose()等,包括libc.a库里的signal()、ftok()、poll()等系统函数也需要特别注意。

  通常从AIX版本CICS交易迁移至Suse Linux需要添加尚未引用的include头文件,常见的需要引用的头文件有<stringh>、<stdio.h>、<stdlib.h>、<stdarg.h>等。

  4.Makefile差异。表1为编写makefile文件特别需要注意的地方,同时还需注意Linnx环境的makefile使用的文件路径、函数库和常见的优化命令均与AIX明显不一样,都需要按照Linux系统命令来使用。

图片5.jpg

  5.代码迁移常见差异。联机交易迁移至Linux环境,需要注意头文件、交易格式、函数、C ICS EXEC函数等方面的内容,交易改造涉及内容较广。
  
技术应用实例

  1.性能测试。为满足真实业务运行场景的需要,结合业务逻辑复杂程度、使用频率及用户数等因素,采用生产环境相当数据量的数据为铺底数据,选择并发最大、使用频繁的功能来测试系统性能。在单交易负载测试200并发的场景下,并发最大、耗时最长的“登录”功能在Linux CICS环境上的测试结果更好一些;在长达8小时的200并发稳定性测试中,Linux CICS环境仍然表现良好。

  测试过程需要注意一些影响性能的CIlCS参数,可以借鉴的优化配置参数如表3所示。

图片6.jpg

  2.系统运行情况。我行此系统于2015年将所有交易迁移至Linux CICS PC服务器集群。目前日均交易量达几十万笔,日峰值达百万,日均用户超过干人,系统反应较快,服务器CPU和内存均在40%以内,硬件资源使用率较低。系统运行情况表明使用该方案的系统稳定性较强,Linux CICS PC服务器集群环境比较稳定可靠。
  
(文章来源:《金融电子化》杂志)

扫码即可手机
阅读转发此文

本文评论

相关文章