第一章 三层次 Client/Server 介绍
第一节 三层结构
三层结构的客户/服务器模型是一种先进的协同应用程序开发模型,这种方案将客户/服务器系统中各种各样的部件划分为三"层"服务,它们共同组成一个应用程序,这三层服务包括:
1)、客户端服务程序;
2)、业务服务和其它"中间层"服务程序;
3)、数据服务(数据库)。
在实际应用过程中,中间层部件通常可分为两个以上的层次。因此,该应用模型也被称为多层次结构。
目前,企业级应用服务器主要分为以下两类:
1.基于中间件的应用服务器
基于中间件的应用服务器通过与现有系统的集成,可以为企业提供更强大的功能,包括事务处理、安全管理、容错、负载平衡等。
2.基于Web的应用服务器
我们深入探讨一下这种新型对象Web的三层客户/服务器体系结构。
1)、客户端
第一层是属于以传统的Web浏览器和Web为中心的新的桌面范畴。
2)、中间层
第二层是一些服务器,这些服务器能为HTTP和CORBA客户端提供服务。
另外,第二层也必须提供服务器端的组件协调程序,这就是众所周知的对象TP监视器。
3)、后端
第三层包含所有CORBA对象能访问的内容,包括过程的TP监视器、面向消息的中间件、DBMS、ODBMS、LotusNotes和电子函件等。
从应用架构上看,两次重大的迁移最为引人注目。第一次是从主机终端方式向Client/Server计算方式的迁移,这次迁移的积极效果之一是,打破了计算方式高度集中的局面,使计算环境向客户靠近了一大步。第二次则是从经典的Client/Server计算方式向Internet架构下的集成计算方式的过渡与融合,这是一个目前正在进行的过程。
第二节.三层的必要性
2.1 三层结构应用系统的优越性
2.1.1 性能问题
三层系统要解决的第一个问题是性能问题:
我们先以一个例子来说明系统架构对性能的影响,如下表格(表 1-1)以电信市话系统的规模为例,表示用户数在特定数量时,需要多少业务终端为其服务:
表 1-2-1
规模 终端数 最大终端数
<20万 50 100
20万-60万 100 200
60万-150万 200 400
>150万 300 1000
如果采用二层结构的话,当应用相对简单、数据访问量不大的情况下可以承受。而在上表,当应用变得复杂、庞大,数据的访问量增大,客户机数目很多,就会带来性能急剧下降的后果。我们来看一下,性能问题究竟有几个方面:
1. 数据库并发连接;
2. 远程连接;
3. 数据库的瓶颈效应。
这些问题,二层结构无法得到满意的解决,而三层结构正是解决问题的关键。与二层结构不同,三层结构无须保持客户机与服务器之间的长连接,通常采用了无连接或短连接(Sessionless、Connectionless)的方法。客户机和应用服务器之间没有复杂的上下文关系,可以在每次请求时建立连接,服务器返回结果后可以马上断开与客户机的连接,这样,可以充分共享服务器端系统资源,为更多的并发用户服务。
1. 减少数据库并发用户
2. 减少网络开销
2.1.2 互连问题
第二个问题就是系统互连问题,从连接的范围要求上说,可以分为
x 同一系统内应用交互。
x 异种系统间应用交互。
从时间意义上说,可以分为
x 实时或准实时交互。
x 异步交互:无须即时响应,一般用于系统之间批处理。
系 统互连不但需要一个好的架构以便与将来应用互连,也需要帮助已有系统甚至未知系统的顺利连入。二层结构,由于以数据库为中心,除非不同系统之间能够共享数 据库,即,不同的应用之间能将自己的数据库公开,否则,必须采用其他方式来解决,譬如,数据库的复制等。总之,二层结构的应用要互连,一定是在同一系统环 境下,往往还要满足非常苛刻的条件,而且,异种系统互连根本不可能。这是因为,直接对数据源的引用有如下弊端:
1. 所有客户机必须安装所连所有不同种数据库的客户软件,增加维护复杂性
2. 所有客户机必须有所有数据库的访问权限,对于一个分布式环境,不但管理困难,而且容易造成安全问题
3. 增加数据库的并发连接,加重数据库负担
4. 数据模式对外公开,降低对其修改的自由度
这样,互连时的耦合度太高,影响系统的独立性。相反,三层结构提供事务级别的调用而非数据源的引用。客户机看到的就是和业务逻辑相关的事务,这样,与其他系统互连时,只要提供这些被外部调用事务的调用规范,不用做其他特殊的工作,自然形成三层甚至多层C/S结构。而且,在异种系统互连时,为屏蔽内部系统和外部应用,保证本地系统的安全,往往会提供和外界相连的网关、前置机,本身就是多层次的表现。
三层结构的应用服务器可以使用多种数据源为其提供数据服务,而且,应用服务器中的事务也可以作为一种资源,被本地或远程应用服务器的其他事务来调用。
2.1.3 安全问题
在二层结构中,安全问题也有很大的缺陷。安全分为两大部分:
x 权限控制。
x 信息安全。
在 二层系统中,用户拥有的是数据库服务器访问的权限,所以无法阻止其用其他方法绕过客户端应用的限制而直接操作数据库,从而利用其被赋予的合法权限来完成超 越其应该拥有的权限所做的操作。其次,在系统互连时,必须赋予外部系统访问本地数据库的权限,而此时,此外部角色完全无法由本地控制,在这种情况下,要修 改连接的规范,或者本地的数据模式发生变化,或者要与其他应用连接而要增加外部用户时,都会要求对权限重新赋值,管理工作非常困难。一旦系统中有若干个数 据库时,权限的分配更是一个严重的课题,因为越复杂的系统,越容易出现安全漏洞。
而 在三层系统中,采用与二层结构不同的权限控制方式。二层结构由于访问的是数据库,所以,控制的是对数据库对象的访问权限,而三层系统访问的是事务,控制的 是对事务的访问权限。可以看到,对事务访问的控制比对数据对象的控制更精确,粒度更小。这是因为,所谓控制用户的权限就是保证用户执行指定操作的能力,同 时保证其无法执行其他未指定的操作。下面举例说明两者的区别。
其次,在系统互连是大趋势的情况下,不能为满足安全要求而牺牲连接能力。
在 二层系统中,要完成系统互连,必须开放数据模式以及建立特定的用户,而在三层结构中,开放的是事务,可以为此建立新的事务,或者使用原来的事务。外界应用 无须知道内部数据结构,在内部发生变化时,甚至业务逻辑发生变化,只要保证此事务的对外接口不变,与之连接的系统不需要有任何改变。不管与外界连接的是何 种事务,在事务服务器中可以定义相应的用户来赋予执行权,控制非常简单而有效,减少出错机会。
在 整个系统中包含多个数据源的情况,如果是同种数据库,还可能有统一的工具进行管理,对于异种数据库,必须一一在各个数据库上为二层应用的用户赋予对各数据 库对象的各种权限,这是一种对管理员要求很高的工作。而在三层结构的应用中,数据源对最终客户机是透明的,无须为客户分配数据库的权限,只需控制不同用户 在事务服务器上对各种事务的执行权限。这样,权限管理集中在事物服务器上,便于管理。在信息安全方面,由于数据库提供的客户端软件的限制,一般只能实现基 本的身份认证,数据加密传送的能力也非常有限。而在三层结构中,可以使用系统本身的身份验证,也可以实现在应用级的身份验证。由于用户可以自由定义每个事 务的接口,用户调用服务器端事务的接口数据格式可以由用户决定,所以,可以实现应用级对不同数据域的身份认证和加密传送,精确到不同字段使用不同算法。这 样,三层结构也可以提供更好的信息安全。
2.1.4 开发维护问题
在应用开发时,也必须考虑应用的易于开发维护,主要体现在如下方面:
x 保护原有技术投资。
x 便于进行RAD。
x 缩小维护时的牵涉面。
第三节、数据的一致性、两阶段提交和事务处理器
3.1 数据的一致性
3.1.1 数据的一致性
事务(Transaction)是并发控制的基本单位。所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,是一个不可分割的工作单位。
事务有如下特性:
原子性:在事务内的所有操作要么一起成功,要么一起失败;
一致性:当事务失败退出时,所有在本事务中被修改的数据,会被恢复到事务开始时的状态;
独立性:在事务执行过程中,已被修改但未被提交的数据,对于其它事务是不可见的;
永久性:已被提交的数据是永久的,不可再恢复的。要取消已提交的事务,必须在应用级实现,例如再进行一次相反的事务实现反冲。
3.1.2 单一数据源事务的数据一致性
在单一数据源环境下,有多个用户存取和更改数据时,必须保持数据源中数据的完整性。 在此,必须考虑并行性问题,即可以同时由多个交互的用户或应用程序共享资源的能力。
3.1.3 并发事务中的一致性问题
在并发事务环境中,除了必须满足单用户单数据源的事务的特性,还有并发环境下特有的数据一致性问题。
3.2 分布式事务处理
X/OPEN 分布式事务处理(DTP)包括三个软件部分:
x 应用程序(AP)定义事务的起始及组成事务的动作
x 资源管理器(RM)提供对共享资源的访问,如数据库或文件系统
x 事务器(TM)为各事务指定标识符,监控事务过程,负责事务的完成及故障恢复
其中存在如下三种接口:
1. 应用程序使用各资源管理器提供的接口访问其资源,如DB2的Embeded SQL,Oracle的Pro*C等;
2. 应用程序使用事务管理器提供的接口来定义事务的起始和提出对事务的提交和回滚,如CICS提供的服务器端API;
3. 事务管理器和资源管理器使用特定接口来互换事务信息,即所谓的XA接口规范。
以下,对XA规范中使用的概念做一次明确定义:
事务:一个事务是一组完整的工作,包含许多计算任务(用户接口的交互,数据的存取,以及通讯等)。一个典型的事务一般会对共享资源进行修改。事务必须能被回滚,程序可以选择当发生特定事件时回滚一个事务。
分布式事务处理(DTP):分布式事务处理系统支持一个事务跨资源管理器情况下的各种处理工作。为此,必须满足:
1. 系统必须在涉及到某一特定事务时有一种方法可以包含系统内任何地方已完成的任何工作;
2. 在决定是提交或回滚一个事务时,必须考虑这个事务在所有地方已完成的工作的状况,这个决定必须保证在整个分布式事务处理系统中有统一的结果,即,这个决定的结果若是提交,则系统的所有参与对象都能提交,反之,若回滚,则所有人都必须能回滚。
应用程序:应用程序定义事务及在事务范围内访问资源,每个应用程序指定一系列涉及对资源,如数据库、文件系统的操作。
资源管理器:资源管理器管理计算机的特定的共享资源,其他软件可以通过资源管理器提供的服务接口来请求对这资源一次次的访问。以下是几种资源管理器:
1. 数据库管理系统(DBMS)是一种资源管理器,数据库管理系统可以定义事务和对其提交或回滚。典型的数据库管理系统包括 UDB DB2,Oracle,Sybase,Informix, SQLServer 等。
2. 结构化文件系统(Structured File System -- SFS),提供支持日志功能的记录型文件访问,可以将对文件的操作定义为事务,即可以在需要的时候将对文件的读写统一提交或回滚。
3. 消息管理器(MQSeries)提供进程之间的通讯机制,管理消息的发送和接受,可以将对消息的操作定义为事务。
4. 打印服务器也可以有资源管理器的实现。
事务管理器:资源管理器管理全局事务,协调统一的提交、回滚以及故障恢复。应用程序通过调用事务管理器来定义全局事务的起始,事务管理器会返回一标识符(XID)来标志此全局事务。事务管理器管理此全局事务并通知各资源管理器他们各自的事务所对应的这个全局事务,即使资源管理器可以管理自己的事务,他们也必须接受这个事务标识符(XID)并将其对应到相应的本地事务,这样,当事务管理器要完成这个全局事务时,资源管理器可以知道该对哪个本地事务做处理。
3.3 XA规范
XA接口是提供事务管理器和资源管理器之间互相调用的规范
这样,应用程序可以完全不用意识到其中的二阶段提交,甚至不用做数据库的连接,只需要用各种数据库的接口来处理相关业务,最后,调用事务管理器的提交命令,事务管理器会处理所有的协调工作。
3.4 一阶段提交,两阶段提交及远程数据源的数据一致性
在 进行系统架构时,如果应用会对多个数据库进行处理,存在两阶段提交时,使用事务管理器一般是必须的。但由于三层结构的优势,即使数据库只有一个,也可能使 用事务管理器来构建三层的应用。而且,由于两阶段提交的系统开销很大,在可能的情况下,尽量避免使用两阶段提交。在事务管理器和所有资源管理器都在通讯速 度高,可靠性有保证的情况下,可以使用两阶段提交,但是,在任何一个参与方在远程的情况下,应该采用变通手段,避免使用两阶段提交,保证在一定时间段的信 息一致性,而不是任何一个时间点的信息一致性。例如,远程资源管理器之间的两阶段提交可以借助保证可靠传输的MQSeries,利用两次本地的两阶段提交和一次可靠的远程传输来完成,具体实现如下:
图 1-3-3
这样,通过两个MQ服务器和各自本地的数据库服务器之间的两阶段提交,以及两个MQ服务器之间可靠的消息传送机制,保证了两个远程数据库之间的数据一致性,同时,避免由于远程通讯引起的额外开销和故障。注意,这时讨论信息一致性时,必须考虑到信息暂时在MQ服务器中的状态,否则,单看在两个数据库服务器中的数据,信息的一致性是没有办法保障的。
第四节 通用在线事务处理软件—CICS
4.1 CICS 的简介
CICS 是一系列为 IBM 和非 IBM 平台上的应用提供联机事务处理和事务管理的产品,其功能是为商业应用提供一个事务处理环境。CICS其全称是 Customer Information Control System,即客户信息控制系统。
CICS 建立在操作系统、ISO的分布式计算环境 ( DCE,Distributed Computing Environment ) 和 Encina 服务上,它帮助客户建立三层次结构的联机事务处理应用。CICS 为应用程序开发、通信、恢复、显示、数据管理、安全性和内部通信等提供很多项服务。
CICS 可以与 DCE 紧密结合,以满足分布式环境对于安全性,名字服务等的特殊需求。
CICS 的结构设计也是面向事务处理的,CICS 构建的是一个三层次结构的应用系统,CICS 有效地区分应用系统中的表述逻辑层、业务逻辑层和数据逻辑层,从而使应用系统结构清晰,维护简单易行。
目前,在IBM的全系列计算机系统中均有相应的 CICS 产品,如OS/390、MVS/ESA、VSE/ESA、OS/400、OS/2,并扩展到其它厂商的系统中,如HP、DEC、SUN等等。
服务器端产品有:
Ø Transaction Server for AIX
Ø CICS for HP 9000
Ø CICS for Digital UNIX
Ø CICS for SUN Solaris
Ø CICS for Siemens SINIX
Ø Transaction Server for NT
CLIENT端产品有:
Ø CICS Client for AIX
Ø CICS Client for HP-UX
Ø CICS Client for Solaris
Ø CICS Client for Digital UNIX
Ø CICS Client for SINIX
Ø CICS Client for SCO UNIX
Ø CICS Client for NT,Win95,Windows,DOS
Ø CICS Client for Macintosh
Ø CICS Client for OS2
4.2 CICS提供的功能模块
CICS提供了事务处理中的共同需要的几乎所有功能模块,如:
请求接收 处理错误
安全管理 性能监控
资源管理 可联接性
逻辑锁 多线程并行
日志 时序控制
事务调度 事务授权
事务恢复 事务管理
事务一致性完成 队列服务管理
客户仅需要将他们的注意力集中在他们的业务逻辑上,从而快速地开发适合他们的业务需要的应用程序。
CICS 在其服务器端支持 C、COBOL、PL/1 语言,采用统一的应用编程接口(API),这就是 CICS 的“EXEC CICS”的编程接口。
而这些程序由于不依赖于某一种通讯协议、某一种数据库管理软件,也不依赖于某一种操作系统和硬件平台,因此,由 CICS 构建的事务处理环境中,TCP/IP 和 APPC 可以共存,IBM DB2 和 Sybase,Informix,Oracle 可以共存,AIX 和 MVS/ESA,OS/400,WindowsNT,HP-UX 等可以共存。而应用程序均能很容易地配合和相互移植。
CICS 的编程语句可以和 SQL 的编程语句共同存在于应用程序中。 CICS 在其客户机端支持 C 和 COBOL 语言,也采用统一的应用编程接口(API),客户可以采用两种方式来编制 CICS 的客户端程序,一种是 External Call Interface(ECI),另一种是 External Presentation Interface(EPI)。甚至,用户还可以在客户端使用其已经比较习惯的 PowerBuilder、Delphi 等开发工具进行开发。
4.3 CICS 的主要特性:
l 可用性
系统的可用性对系统来讲是至关重要的,无论任何时候,都不能因为硬件、软件或网络失效行为而造成的系统功能失效。
CICS 通过在不同计算机上提供相同的服务来实现更高的可用性与可靠性,不同计算机上的服务可以互相备份。
l 完整性
在事务处理过程中,如果没有系统完整性的保证,则系统毫无可用性。应用服务器必须可以持续地提供任何已提交工作的准确记录。
CICS 提供这样的事务环境:其中运行的事务失败时,它对文件记录或数据项的修改都被自动回滚,应用程序员不必编写失败处理程序。 CICS 系统明确地记录了应用程序对数据的修改,并当事务失败后,自动地把对数据的修改回滚。
l 持久性
CICS 采用下面两种重要方法,来实现系统的持久性。首先,它允许重新利用现有应用系统以创建生产系统。其次,创建于 CICS 上的新应用系统易于适应未来的发展需要。 CICS 提供了无须中断生产,即可持续地改善和扩充服务的能力,这对提高系统的可用性来说非常重要。
l 扩充性
CICS 可以响应多至上千个用户同时发出事务请求。CICS 应用的范围从 PC 服务器到 MVS 主机,即使是在 UNIX 范围内,也可以从低端的 UNIX 服务器扩展到 SMP 多 CPU 的服务器和 SP2 多结点的服务器上,升级的范围也是很宽的。值得注意的是,客户的应用程序由于采用的是同样的 API ,因此应用的移植非常容易。而 CICS 也很使得工作负载很容易地分布在网络上的不同的服务器之间。
l 安全性
像 CICS 这样的事务处理系统,安全性是非常重要的因素。 CICS 的典型应用是管理企业运作的关键数据。安全性设计是预防外部非法访问这些数据的重要措施。
Ø CICS 事务和资源的安全性
Ø 通信的安全性
Ø 外部安全性管理程序接口
l CICS 具有极好的优先级调度,大体可以分为 4 个层次:
1) 用户优先级
2) 终端优先级
3) 事务优先级
4) 时间优先级(等候时间越长,优先级越高)
一个具体事务运行的优先级由以上四者之和决定。
4.4 CICS 的有关的几个概念
l 事务处理监视器
事务处理由事务处理监视器控制。事务处理监视器完成协调联机事务处理所必需的所有功能。 在 CICS 中,由 CICS 区域实现事务处理监视。CICS 区域可以响应同时来自多个客户的请求,可以有效地提高事务处理的吞吐量。
l 结构化文件服务器 (SFS)
SFS 是一个面向记录的文件系统,它在支持大量并行用户和可跨越多个磁盘的大文件时,提供事务完整性和基于日志的恢复。
SFS 能够提供数据处理与管理功能。数据处理功能提供访问和修改数据所必需的标准操作:读、插入、更新、删除、锁定、解锁等等。管理功能允许程序 查询和修改 SFS 文件和卷、复制和删除文件等等。SFS 使用 RPC 与其它服务器通信。
l 区域(region)
CICS 区域处理一个或多个客户请求的事务。通常,区域经过访问数据库、完成一些商业逻辑,然后才答复客户。
CICS 区域维护并使用一个多线程的进程池,其中每个进程提供一个处理事务的完整环境,这样的进程称为应用程序服务器(AS)。
每个 CICS 区域协调它的应用程序服务器所需要的所有资源服务。例如,CICS 区域协调应用程序服务器的安全性,获得它们需要的数据与存储器并记录它们的事务。除了以上优点,多个 CICS 区域还可用来为分散工作负载提供一个分布式事务处理环境,提供事务处理的能力。
CICS 区域将许多服务分给其他更有能力做此工作的服务器,例如,CICS 区域可使用SFS 文件或 DB2 数据库来存储和管理用户数据。
CICS 区域作为一项 Windows NT 服务运行。CICS 区域包含了几个由监视器进程监视的内部进程。该监视器进程处理所有启动和关闭 CICS 区域的 Windows NT 服务请求。
l CICS中的数据类型
在CICS中,数据能以下列形式存储:
Ø 文件 -- 永久存储直到被明确删除的数据。
Ø 队列 -- 处理请求或将数据从一个任务或一个程序传递到另一个任务或程序的临时数据。 队列能在 CICS 区域的多个执行体上保留,并能表示永久数据。队列是顺序的。
Ø 关系数据库 -- 存储在一个特殊结构中,由 RDBMS 支配并使用结构化查询语言(SQL)命令访问的数据。
Ø 日志 -- 一组用来在发生故障后恢复数据更改的特殊用途的文件。
数据是一种可用于一个或多个服务器的全局资源。任何任务都可以读、写或删除数据,并能与其它任务共享数据。
l 服务和子系统 (Subsystem)
在开放系统和 Windows NT 上,CICS 区域和 SFS 服务器作为一个特殊的程序类别运行。在 AIX 上,该类别即为“子系统”。子系统由系统资源控制器管理。在 Windows NT 上,该类别即为“服务”。服务由 Windows NT 服务控制管理器管理。
在其它开放系统平台上,并不存在作为操作系统一部分的子系统的概念, 由 CICS 模拟系统资源控制器的功能。
在开放系统和 Windows NT 上,作为服务或子系统运行的程序可并行运行。
在 Windows NT 上,控制面板“服务”应用程序显示了一列服务,其中包括 CICS 区域和 SFS 服务器。(注意:CICS 区域和 SFS 服务器不能由“服务”应用程序启动和停止。)
l 远程过程调用(RPC)
DCE 支持的核心是 RPC。RPC 提供了分布式系统中两个进程间的一种网络透明通信 形式。进程使用 RPC 以完全相同的方式进行通信。
l 日志
Ø 事件日志 (仅 Windows NT 平台上)
Ø 系统日志
l 两阶段提交
当要提交一个事务时,事务处理系统要确保所有在此项工作中涉及的可恢复服务器都提交它们的更新。如果一个或多个服务器不能这样做 (例如,与资源管理器的通信发生故障),那么所有服务都必须回滚。已提交的数据更改都是永久性的。
为了完成上述操作, 提交过程有两个阶段 (称为两阶段提交):
在第一阶段 (准备阶段),服务器协调程序要求每个参与者记录足够的工作信息,以使事务处理服务器能够提交或回滚。
在第二阶段 (提交阶段),服务器协调程序检查所有参与者已成功完成它们的更新。如果都已成功完成,那它就提交更新;否则,作回滚操作并异常终止事务。
l CICS 的启动顺序
Ø DCE
RPC 精灵程序必须处于运行状态。如果在 DCE 单元中配置 CICS,那么 CDS 和安全性服务器以及服务软件必须也处于运行状态。
Ø 文件管理器
如果使用用于队列和文件管理的 SFS,那么当启动区域时它会自动启动。不过,如果使用 DB2 或远程 SFS,那么在启动区域前必须启动这些组件。
Ø 本地 SNA
如果一区域使用本地 SNA 支持,那么此时应该启动 SNA。
Ø PPC 网关服务器
如果区域使用 PPC 网关,那么 PPC 网关服务器必须区域启动以前启动。注: Encina PPC 网关服务器 在 Windows NT 上不可用。不过,可在一台有 PPC 网关服务器的机器例如 IBM RS/6000 上使用远程 PPC 网关服务器。
Ø CICS 区域
CICS 区域必须在以上各项都成功地启动之后,才能启动。
l CICS 的停止顺序
CICS 区域依赖于其它基本组件。因此,必须首先关闭区域,并在 CICS 区域完全关闭之后,才可以顺序关闭那些基本组件。关闭顺序应该为:
Ø CICS 区域
Ø PPC 网关服务器 (如果是处于运行状态)
Ø SFS
Ø DCE
l CICS 区域的启动方式
Ø 热启动(Auto):
如果CICS以前的运行正常终止时,CICS保留存储在瞬时数据队列和临时存储器队列中的任何数据。
如果CICS以前的运行异常终止时,例如一个立即关闭或一个硬件错误,CICS执行在热启动方式下任何必要的恢复处理,并保留在可恢复瞬时数据队列和临时存储器队列中的任何数据,但丢失存储在不可恢复队列中的数据。
而当 CICS 区域热启动时,不从永久资源库中装入运行资源库中,直接使用运行资源库运行。
对于资源 XAD ,即使是热启动,该类资源也是从永久资源库中装入。它仅仅在应急启动时才从运行资源库装入。
Ø 冷启动(Cold):
冷启动时,不进行尝试恢复任何以前正在运行的事务,并且丢失存储在瞬时数据队列和临时存储器队列中的任何数据。
一个新建的区域在创建后第一次启动时,它必须被冷启动以保证区域正确的初始化。
当 CICS 区域冷启动时,它将需要的资源定义从永久资源库中装入运行资源库中。
Ø 应急启动,如果区域以立即关机终止或异常终止。当 CICS 区域执行应急启动时, 不把永久数据库复制到运行时间数据库中,保留在可恢复瞬时队列和临时存储器队列中存储的任何数据,但丢弃存储在不可恢复队列中的数据。CICS 将执行在该方式下任何必要的恢复处理。
l CICS 区域的停止
Ø “Normal” - 正常停止:
正常停止过程将分为如下两个阶段来进行:
A. 在终止的第一停顿阶段
假设所有终端为活动的,所有 CICS 设施为可用的,那么 CICS 按如下方式运行:
² 允许正在运行的任务完成。
² 允许将要自动启动的任务完成。
² CICS 运行完毕保存在 RD 中的阶段 1 程序列表中列出的任何用户编写的程序。
B.在终止的第二停顿阶段
在该阶段期间,终端已变为不活动的,CICS 将不再允许任何新的事务启动,当在阶段 2 程序列表中列出的最后一个程序运行结束时,第二停顿阶段结束。
CICS 然后执行下列任务:
² CICS 把统计资料写至统计资料文件中。
² CICS 关闭所有文件。
² CICS 将用于随后自动启动的信息写至重新启动文件中。
² CICS 停止运行。
Ø “Force” - 强制(立即的)停止:
当请求 CICS 的强制(立即的)停止时,在以下方面与正常停止过程不同:
² CICS 不等待用户任务完成。
² CICS 不再运行任何在区域定义(RD) 中定义的停止程序列表中的程序。
² CICS 不把信息写至重新启动文件。
Ø “Cancel” - 取消(异常强制)停止:
当请求一个取消(强制异常)停止CICS 时,CICS区域无需经历停止过程而被强迫停止。当且仅当系统在停止时间过长,或者在不能清除运行的任务以正常停止时,才能使用这种停止方式。
如果使用了一个取消(异常强制)停止,必须使用cicsnotify命令来释放任何还没有释放的资源,并删除region_lock文件。
l 永久资源库 (Permanent)
每台可启动 CICS 区域的机器都有一个永久资源库,存储了 CICS 区域的各项资源定义细节。例如,一个包含 CICS 区域名称和属性的区域定义。
永久资源定义必须在启动 CICS 区域之前创建。当 CICS 区域冷启动时,它将需要的资源定义从永久资源库中装入运行资源库中;而当 CICS 区域热启动时,不从永久资源库中装入运行资源库中,直接使用运行资源库运行。实际上,CICS 是根据运行资源库运行的。
l 运行资源库 (Run-time)
每个 CICS 区域用一个可用来启动它的资源组列表定义。当 CICS 区域启动时, 将组中的资源定义作为运行资源定义装入 CICS 区域。运行资源定义存在于两个 CICS 区域实例中并在区域自动启动时装入。它们以与永久资源定义相同的方式在磁盘上维护。
运行时间定义独立于它们相关的永久资源定义操作。 例如,可以改变一个事务的运行时间属性而不影响它的永久资源定义。
当 CICS 区域运行时,它使用运行资源库来控制它的处理、跟踪它的资源更改并动态地添加新资源。
4.5 CICS 的资源
CICS 中的资源定义包含以下各项:通信定义,文件定义,网关定义,日志定义,侦听定义,监控定义,产品定义,程序定义,区域定义,模式文件定义,结构化文件服务器定义,临时存储器定义,终端定义,事务处理定义,瞬时数据定义,用户定义。
下面将分别对以上的各项资源定义进行详细描述:
4.5.1 通信定义(Communication Definition)- CD
通信定义(CD)定义了 CICS 区域可与之通信的远程系统。通信可能使用传输控制协议/网际协议 (TCP/IP) 或系统网络体系结构 (SNA)。
当 IBM CICS 客户连接到区域或需要 CICS 系列的 TCP/IP 连接时,同样动态创建了 CD 项。每个 CD 项说明了一个远程系统。
4.5.2 文件定义(File Definition)- FD
CICS 使用文件定义(FD)定义已添加到文件服务器中的区域数据文件。可以在 FD 中定义远程和本地的文件。
4.5.3 网关定义(Gateway Definition)- GD
CICS 使用网关定义(GD)定义 CICS Windows NT 版需要访问的任何 PPC 网关服务器的属性。因为不可能在 CICS Windows NT 版 中运行 PPC 网关服务器,故它没有相应的资源定义。
4.5.4 网关服务器定义(Gateway Server Definition)- GSD
CICS 使用网关服务器定义(GSD) 来启动并停止 PPC 网关服务器。
4.5.5 日志定义(Journal Definition)- JD
日志是一组专用的顺序文件。日志可能包含所有这样的数据,这些数据被应用程序用来在需要重建事件或数据修改时使用。CICS 使用日志定义(JD)来说明用户日志。
例如,日志可能被作为审查跟踪、数据库更新和添加的更改文件或系统处理事务的事务日志。每个日志可由任何任务写入。
日志定义(JD) 控制了 CICS 区域日志输出的目的地。
4.5.6 侦听定义(Listener Definition)- LD
侦听用来监控发送到 CICS 区域的服务请求。CICS 区域可使用下列各类侦听:
Ø RPC 侦听用于与其它使用 DCE RPC 的 CICS 区域和系统通信。例如,与 AIX 上 PPC 网关服务器通信。 如果 RPC 侦听检测到一个进入的事务请求,它就将该请求放到一个由事务处理服务器监控的共享内存队列中。
Ø TCP/IP 侦听用于跨越 TCP/IP 网络的通信。
Ø 本地 SNA 侦听用于与本地 SNA 的通信。
Ø 命名管道侦听用于与 CICS 本地终端的通信。
CICS 区域和 IBM CICS 客户机间的通信使用 TCP/IP 侦听或本地 SNA 侦听,这取决于客户是经由 TCP/IP 还是 SNA 连接的。
每个侦听是一个在启动 CICS 时启动的多线程进程。 线程数可由 CICS 区域在启动时预先定义或自动确定。侦听可以与其它系统上的侦听通信。对于 CICS 客户机, 与 CICS 区域的通信模拟 CICS 区域间 listener-listener 流。
对于每个可与之通信的远程系统,CICS 区域在它的运行资源数据库中需要一个通信定义。 如果一个 CICS 客户机与一个 CICS 区域连接,则该 CICS 区域自动安装一个通信定义。
4.5.7 监控定义(Monitoring Definition)- MD
CICS 使用监控定义(MD) 来说明 CICS 执行的监控操作(性能数据集合)。这是一类单个记录构成的特殊资源类。
监控定义(MD) 允许将监视器在开和关之间切换,选择数据收集的级别,并定义要使用的监控程序。若应用程序使用 EXEC CICS ENTER 语句写跟踪入口,则需要配置 MD 项。
4.5.8 XA数据库产品定义(Product Definition)- XAD
CICS 使用产品定义(XAD) 来保留与其它事务性产品接口所需的信息,用于提供给 CICS 有关 CICS 应用程序访问符合 XA 标准的产品的信息。
CICS 可以通过在 CICS 应用程序体中包含嵌入式 SQL 调用,以访问关系数据库管理器(RDBM)。 对于协调事务的提交和回滚, RDBM 必须与 X/Open 分布式事务处理(DTP)标准相一致。
对于符合 XA 标准的数据库,CICS 用完整的两阶段提交来协调数据的事务性更新。
4.5.9 程序定义(Program Definition)- PD
程序定义(PD)定义了 CICS 可在此区域中处理的程序,CICS 使用程序定义(PD) 来定义程序、映象集和表。PD 中包含的每个项目控制 CICS 用来标识并运行程序的信息。
可以在 PD 项中定义远程和本地的程序。
4.5.10 区域定义(Region Definition)- RD
CICS 使用区域定义(RD)来定义 CICS 初始化进程所使用的全部参数。 RD 包括用于初始化区域的参数和用于配置 SFS 的参数。
4.5.11 模式文件定义(Schema File Definition)- SCD
CICS 使用模式文件定义(SCD) 来定义添加进文件服务器的文件结构。这是一类单个记录构成的特殊资源类。
4.5.12 结构化文件服务器定义(Structure File Server Definition)- SSD
CICS 使用结构化文件服务器定义(SSD) 来定义区域可用的所有 SFS 服务器。
4.5.13 临时存储定义(Temporary Storage Definition)- TSD
CICS 使用临时存储定义(TSD) 来定义临时存储队列的模板数据标识。 CICS 需要 TSD 项以保证安全性、可恢复性和支持远程应用。
在建立区域时,在文件服务器上将建立区域必需的临时存储器队列。
主 TSQ 的数据保存在内存中。辅助 TSQ 的数据保存在文件中。当文件管理器建立时,这些文件位于用 区域定义(RD) 缺省文件服务器 属性指定的文件管理器上。
可以在 TSD 项中定义远程和本地的队列。
4.5.14 终端定义(Terminal Definition)- WD
终端定义(WD) 定义了 CICS 区域可用终端的配置。包括可自动安装的终端模型。可以在 WD 项中定义远程和本地终端。
CICS 处理数据翻译、事务辨别、输入输出操作的同步化和对终端读或写的会话控制,这使得应用程序不必再负责控制终端。
4.5.15 事务定义(Transaction Definition)- TD
CICS 使用事务定义(TD) 来定义并初始化事务,它可以定义CICS 能够在区域内处理或者可发送到其它 CICS 区域上的所有事务,。CICS 需要该定义来验证送来的请求,以启动事务并提供有关事务的信息。 可以在 TD 项中定义远程和本地事务。
CICS 中的事务是处理的单元,它调用了 CICS 应用程序。事务由单个请求启动,这一请求通常来自终端并使用一个 4 字符的事务标识符。
事务定义(TD)并初始化事务。
CICS 需要该定义来验证进入请求,以启动事务并提供有关事务的信息。 可以在 TD 项中定义远程和本地事务。TD 中包含的每个项目控制 CICS 用来标识并运行事务的信息。
4.5.16 瞬时数据队列定义(Transient Data Queue Definition)- TDD
CICS 使用瞬时数据定义(TDD) 来定义本区域中可用的瞬时数据队列(TDQ)。 可以在 TDD 项中定义远程和本地的队列。
在应用程序使用队列前,每个 TDQ 的名称必须定义到 TDD 中。与 TSQ 不同的是, TDQ 无法动态由 EXEC CICS WRITEQ 命令从应用程序创建。
当区域和文件管理器建立时,区域需求的 TDQ 将会建立。
每个 CICS 区域需要 TDQ 的三个文件:一个保留逻辑上可恢复的 TDQ 数据,一个保留物理上可恢复的 TDQ 数据,一个保留不可恢复的 TDQ 数据。当创建区域时,这些文件被放在它指定的文件管理器中。
4.5.17 CICS 用户定义(User Definition)- UD
CICS 使用用户定义(UD)来定义 CICS 用户的信息。CICS 使用该定义来执行事务处理和资源安全性检查。
CICS用户使用 CICS 本地终端、CICS 客户程序或 Telnet 客户程序连接到 CICS 区域上。CICS用户有一个用户定义 (UD)入口项,或者用区域的缺省用户 ID (CICSUSER)连接到区域。CICSUSER在创建新区域时被设置,但可以在该区域的 RD 项的缺省用户 ID 属性中进行更改。用户可以通过使用 CESN 事务处理变换为不同的 CICS 用户 ID。
对每个 CICS 用户,下面各项是需要的:
Ø 用户登录到 CICS 的操作系统用户 ID ;
Ø 一个用户定义(UD)入口,除非使用缺省 CICS 用户 ID ;
Ø 如果区域是在 DCE 单元中配置,则需要 DCE 委托人。
4.6 CICS资源操作命令
CICS中提供了一系列命令,对资源进行加入、删除、修改和检查,并且提供了 CICS 控制程序 cicscp,使得能够以命令行的方式启动、停止服务器。
l cicsadd
将某一资源加入到CICS区域的永久资源库中,或有条件地加入到正在运行的CICS区域中的运行库中。
语法:
cicsadd –c class –r region [-P|-B] resource [[name=value]]
其中,
-c class :class是资源类别名,它可以是下面列表中的一个:
表 1-4-1
cd 通信定义
fd 文件定义
gd 网关定义
gsd 网关服务器定义
jd 日志定义
ld 端口侦听定义
md 监控定义
pd 程序定义
rd 区域定义
scd 文件结构定义
ssd SFS服务器定义
td 事务定义
tdd TDQ队列定义
tsd TSQ队列定义
ud 用户定义
wd 终端定义
xad XA接口定义
-r region:region是CICS区域的名称。对于sdd、scd和gsd三个资源定义,不需要region参数。
-P 是缺省选项,表示仅把资源定义加入到永久库中。
-B 选项表示永久库和运行库都被修改。
MD 和 RD 不能使用这条命令加载。
l cicsdelete
该命令分别从永久库、运行库或两个库同时删除指定的资源定义。
语法:
cicsdelete –c class –r region [-P|-R|-B] resource [resource…]
其中,
-R 选项表示从运行库中删除指定的资源定义。在某些情况下,只能从运行库中删除资源定义,见下表:
表 1-4-2
cd 仅当跨系统通信(ISC)连接结束时,该资源定义才能被删除。
fd 文件只有在关闭和不可用状态时,该资源定义才能被删除。
jd 日志只有关闭时,该资源定义才能被删除。
pd 程序、屏幕影象和表在没有使用的情况下,该资源定义才能被删除。
td 事务仅当没有被使用时,该资源定义才能被删除。
tdd 瞬时数据队列仅当没有被使用时,该资源定义才能被删除。
MD 和 RD 资源定义不能被删除。
其它选项含义同cicsadd。
l cicsupdate
该命令可以对资源的永久库、运行库或两个库的资源定义同时进行修改。对运行库资源的修改需要首先使用cicsdelete命令将资源定义从运行库中删除,再使用cicsupdate命令进行修改并动态加载。
语法:
cicsdelete –c class –r region [-P|-R|-B] resource [resource…]
其中,所有选项含义同cicsdelete。
l cicsget
查看资源定义。
语法:
cicsget -c className [-r regionName] [-f fileName] {-l|-s [resourceName]|[resourceName]}
l cicsinstall
从永久数据库将资源定义组安装入运行时间库。首先,需要指定要包括的资源。为此,请在每个必需的资源定义中使用 cicsupdate 将 Group 属性设置为组名。
语法:
cicsinstall -r regionName -g groupName [groupName...]
若需要重新安装 ActivateOnStartup 属性设置为 yes 的资源定义(先前在冷启动时安装),请使用下列命令:
cicsinstall -r regionName –a
l cicscp
CICS 控制程序(cicscp)为配置 CICS 区域和相关的服务器提供了易于使用的命令行接口,您仅需要输入单个命令,就能创建区域,并且可以配置、起动和停止CICS。
CICSCP可以在命令行方式和批处理方式利用。CICSCP的方式适用于有经验的系统管理员或编制批命令使用。
cicscp 常用命令:
1) 创建 CICS 区域
cicscp –v create region CICS01
其中,-v 使得命令的输出被显示在屏幕上。
CICS01 是区域名。
2) 删除 CICS 区域
cicscp –v destroy region CICS01
3) 启动 CICS 区域:
cicscp –v start region CICS01
4) 停止 CICS 区域:
正常停止:cicscp –v stop region CICS01
强制停止:cicscp –v –f stop region CICS01
取消停止:cicscp –v –c stop region CICS01
4.7 CICS 客户机
CICS 客户机(IBM CICS Universal Client)与 CICS 区域在一系列 CICS 所支持的平台上通过传输控制协议/网际协议 (TCP/IP) 或系统网络体系结构 (SNA)进行通信。客户也可与 SNA 网络上的其它系统通信。要这样, 客户和服务器可以直接使用本地 SNA 或间接通过 PPC 网关通信。
CICS 公共客户机为客户应用程序和 3270 终端仿真提供了一组标准接口,它们分别是 ECI 和 EPI。
Ø 外部调用接口 (ECI)
这使得一个在客户机上运行的非 CICS 应用程序能同步或异步地调用 CICS 程序,就象一个子程序。 基于客户的应用程序使用简单的 ECI 调用将数据块传递到 CICS 区域,无需任何特殊的通信代码。
Ø 外部显示接口 (EPI)
它使一个在客户机上运行的应用程序能调用服务器上的 CICS 事务。 执行该事务就如同将它从 3270 终端启动。该事务向客户返回一个 3270 数据流,而客户可在图形用户界面(GUI)中将它呈现出来。使得诸如图形或多媒体接口之类的现代技术可与传统的 3270 CICS 应用程序一起使用,而无须更改 CICS 应用程序。
第五节 CICS如何工作
下面以一个订单输入系统为例,来说明CICS如何工作。要预定订单,用户与订单输入程序交互,处理开票和 库存信息。订单输入程序通过CICS而工作。下图显示了整个处理流。
图 CICS处理流示例
图上的每一个步骤为:
1、 用户调用订单输入GUI程序,要求下一个订单。该请求标志了将要运行的事务并传递适当的参数。这个GUI程序就会调用CICS客户。
2、 CICS客户调用CICS区域,同时传递来自GUI的请求。
3、 CICS区域验证用户是否有权发出请求以及该用户的终端是否接受支持。如果没有通过验证,用户即被拒绝使用该事务处理系统。
4、 CICS区域指定一个任务来处理新的事务实例,并调度该任务同其他任务一起处理。CICS区域处理并监控贯穿整个任务的订单输入请求。
5、 CICS区域启动该任务,同时为它获取存储器和其他操作系统资源。运行事务的第一个程序(主订单输入程序)。该程序在一个应用程序服务器上运行。而该应用程序服务器其实是一个进程(cicsas),CICS区域有一个服务器进程池,存放这些进程。
6、 主程序检查并处理关系数据库中的一些数据项。CICS区域和RDBMS都锁定了数据库项,使它不能被其他事务更新。仅此一个事务可以更新帐户。CICS区域记录此更改,但在装运和开票操作成功后才提交它。
7、 主程序将装运请求添加到中心装运队列中。CICS区域记录此更改,但在开票操作成功后才提交。
8、 主程序调用本地开票程序以将请求传递到远程程序运行的中心开票程序。本地开票程序在一个独立的应用服务器上运行。
9、 本地开票程序通过PPC网关服务器(它使用SNA)将开票请求发送到其他机器。它等待回答(主程序可以做其他工作)然后将回答返回给主订单输入程序。
10、 在成功地访问了数据库、处理排队装运请求并处理开票请求后,主订单输入程序发出一个同步点(commit)。CICS区域提交并记录对数据库、装运队列和开票数据所做的更改。这使更改为永久的。
11、 CICS区域释放订单输入请求所使用的资源并使应用程序服务器可用于其他任务。
12、 CICS区域通过CICS客户和订单输入GUI程序向用户返回一条相应的成功信息。
以上步骤描述了整个CICS的工作过程。
第二章 CICS安装和配置
软件需求:
AIX V4.3.3;
VAC++;
DCE V2.2 和补丁;
CICS V4.3 For AIX和补丁;
数据库产品。
第一节 CICS安装
1.1 设置用户、组
1、 组: smitty mkgroup
(1)
Group NAME cics
USER list root
ADMINISTRATOR root
(2)
Group NAME cicsterm
USER list root
ADMINISTRATOR root
2、 用户:smitty mkuser
User NAME SFS_SERV
Home Dir /var/cics_servers/SSD/cics/sfs/$sfs_server_name
Primary GROUP cics
Group SET cicsterm
注意:后面将数据库用户加入此cics组;一般$SFS_SERVER_NAME即$HOSTNAME,请参照$SFS_SERVER_NAME;SFS用户名,即SFS的short name,缺省为SFS_SERV,注意与上述的$SFS_SERVER_NAME含义不同。
1.2 创建日志文件系统和逻辑卷
1、 jfs:smitty crjfs
选择’Add a Standard Journaled File System’和相应的卷组(vg);
(1)
SIZE of file system 40000(20 M)(单位:0.5K)
MOUNT POINT /var/cics_servers
Mount AUTOMATICALLY at system restart? Yes
(2)
SIZE of file system 80000(40 M,根据实际交易量)
MOUNT POINT /var/cics_regions
Mount AUTOMATICALLY at system restart? Yes
(3)安装文件系统
mount /var/cics_servers
mount /var/cics_regions
2、 lv:smitty mklv
用F4键选择相应的卷组(vg)。
(1)
Logical volume NAME sfs_SFS_SERV
Number of LOGICAL PARTITIONS 16(64 M)(单位:4M)
(2)
Logical volume NAME log_SFS_SERV
Number of LOGICAL PARTITIONS 16(64 M)(单位:4M)
(3)修改lv的权限
“cd /dev”
“chown SFS_SERV:cics SFS” (有四个设备会被授权SFS_SERV用户)
注意:SFS用户名缺省为SFS_SERV,广义的说,卷名为:sfs_SFS_USER_NAME/
log_SFS_USER_NAME。
1.3 设置环境变量并初始化
1、 编辑”/etc/environment”
LANG=en_US
CICS_PATH=/usr/lpp/cics
ENCINA_BINDING_FILE=/var/cics_servers/server_bindings
RPC_UNSUPPORTED_NETIFS=en0|en1|tr0|fddi0
(把不在”server_bindings”文件中用到的网卡加入,可用”netstat -in”)
CICSREGION=default_region_name
CICS_SFS_SERVER=/.:/cics/sfs/$HOSTNAME
ENCINA_SFS_SERVER=/.:/cics/sfs/$HOSTNAME
NLSPATH=/usr/lib/nls/msg/%L/%N:/usr/lib/nls/msg/%L/%N.cat:/usr/lib/nls/msg/en_US/%N
CICS_HOSTS=’$HOSTNAME1 $HOSTNAME2 $HOSTNAME3
CICS_SFS_VG=rootvg
RPC_SUPPORTED_PROTSEQS=ncacn_ip_udp
2、编辑”/etc/services”
加入”sfs_port 8888/udp”
(找一未被使用的口(port))
3、创建”/var/cics_servers/server_bindings”
加入”/.:/cics/sfs/$HOSTNAME ncadg_ip_udp host_ip[$sfs_port]”
$host_ip可省略,尤其是对多IP的情况下。
4、确认环境
运行LOCALE命令,确认环境变量都为en_US1.4 安装CICS
1、 初始化
l refresh –s inetd
l “logout”并以root用户”login”,使环境变量生效
l 找到cics_prereq.tar,用”tar –xvf cics_prereq.tar”将其解开”smitty install”安装其中的所有软件。
l 安装dce的fix.
Install dce2.2 for AIX and PTF8,PTF9;2、 安装CICS
l “smitty install”
l “Install and Update Software”
l “Install and Update from LATEST Available Software”
l 选择相应的设备
l SOFTWARE to install (用F4选择安装介质)
l 用F7选择下面的软件:
l cics.base,cics.client,cics.server,cics.msg.locale,[cics.info,]encina.client,encina.server,
encina.PPCexec,encina.SFS,encina.msg.locale,[encina.info]
l 安装CICS,ENCINA的补丁3、 建立模板
l “cicsdefaultservers”(产生各种模板,创建sfs定义文件)(应使用cics用户,否则在删除cics_server目录中的内容后,用cicsdefaultservers建立的新目录的属主为root而不是cics,可使用”chown –R cics:cics *”和”chmod –R 777 *”指令修复。)
l “cicssetupclients –m -v”(设置CICS Client环境,被cicsterm组成员使用)第二节 配置生成DCE/SFS/CICS REGION
2.1 配置DCE:
“lsdce”
“rmdce all”
“mkdce –o local –n $HOSTNAME rpc” (建立一个DCE Client)
(“cicscp –v create dce -R”)
注意:DCE用135口(port),所以当发现135被其他应用(如:AIX C NetWork License Service)占用时,必须停止它。
“stopsrc –s netlsd”
“stopsrc –s glbd”
“stopsrc –s llbd”
修改/etc/inittab文件:去掉”i4ls”行。注意:启动i4ls的指令为:
/var/ifor/i4cfg –start –nopause2.2 生成SFS文件系统:
l “smitty cics”
>“Manage FileSystem”
>“Manage Encina SFS Servers”
>“Define Encina SFS Servers”
>“Create”
Model SFS Server Identifier “”
SFS Server Identifier “/.:/cics/sfs/$HOSTNAME”
Are you using DCE servers “NO”
Name Service for advertising server “NONE”
注意:如果采用了不同于SFS_SERV的SFS用户名,须在ShortName项填入此项名称。
l Cold start:
生成SFS可执行冷启动,以后就用Auto start
“cicssfscold /.:/cics/sfs/$HOSTNAME”(或用smitty )
可查看”/var/cics_servers/SSD/cics/sfs/$HOSTNAME/msg”启动情况。
如在定义SFS时,系统报告该SFS已经存在时,并用”smitty cics”无法删除时,
可用:”cicssrcdestroy –s SFS_SERV”
2.3生成CICS REGION:
l “smitty cics”
>“Manage CICS Regions”
>“Create (Import) a CICS Region”
Name of Region to be Created “CICS01”
Force use or no-use of DCE servers? “do not use DCE servers”配置CICS资源到SFS:
cicsupdate -c rd –r CICS01 DefaultFileServer=/.:/cics/sfs/$HOSTNAME
cicssfsconf –R wc CICS01 DefaultFileServer=/.:/sfs/$HOSTNAME2.4 配置XA
1.配置2 Phase XA与Sybase数据库的连接:
l “isql –Usa -Ppwd”
“grant all on spt_committab to probe”
“go”
l 生成连接程序(Switch Load File)
“cd /usr/lpp/cics/src/examples/xa”
修改sybasexa.mk文件中相应的Sybase环境变量
“make –f sybasexa.mk” 生成sybasexa
“mv sybasexa /var/cics_regions/$CICSREGION/bin/”
l 配置XA
“smitty cics”
>“Manage CICS Regions”
>“Define CICS Resource”
>“XA Configure”
>“New”
Identifier: “sample”
Switch Load File Path Name “sybasexa”
Resource Manager Initiazation String “-Nconn_1 –Uuser –Ppw –L/tmp/sybasexa.log”
l 配置环境变量使得root和cics用户可以存取sybase
“cd $SYBASE/scripts”
“vi xa_load”
“./xa_load”
“vi /home/Sybase/xa_config”加入
“[xa]
lrm=conn_1
server=SYBASE”2.配置1Phase XA 与Sybase数据库的连接:
生成连接程序(SwitchLoadFile)
“cd syb1pc”
“cpre –V CS_VERSION_100sybase1pc.cpre”
“vi sybase1pc.c”加入网络包配置
“make”生成sybase1pcl 配置XA
“smitty cics”
>“Manage CICS Regions”
>“Define CICS Resource”
>“XA Configure”
>“New”
Identifier: “samplexa”
Switch Load File Path Name “sybase1pc”
Resource Manager Initiazation String “SYBASE userid password”
修改环境变量
将sybase加入cics组中
“vi /var/cics_regions/$CICSREGION/environment”加入
“DSQUERY=SYBASE(SERVER名)
SYBASE=/home/Sybase”(home路径)
Sybase解库:
“su – Sybase;cd lib;ar-x libcomn_dce.so.a;ar –x libcs_r.so.a;ar –x libct_r.so.a;ar –x libintl_r.so.a;”2.5 CICS Region 的其他配置
1. 配置Listener
“smitty cics”
>“Manage CICS Regions”
>“Define CICS Resources”
>“Listeners”
>“Add New”
Listener Identifier “LI1”
TCP adapter address “194.2.201.254”
*命令行方式:
cicsdelete –c ld –r CICS01 LI1
cicsadd –c ld –r CICS01 LI1 Protocol=TCP TCPAddress=”192.2.201.254”
TCPService=”cicsp1”
2. 配置Region属性3. 设置User
*命令行方式:
cicsdelete –c ud –r CICS01 TEST
cicsadd –c ud –r CICS01 TEST CICSPassword=TEST4. 设置Program
*命令行方式:
cicsdelete –c pd –r CICS01 TELECOM
cicsadd –c pd –r CICS01 TELECOM PathName=… RSLKey=public2.6 Client配置
1. 修改CICSCLI.INI
“cd /usr/lpp/cicscli/bin”
“vi CICSCLI.INI”
加入以下内容:
Server=CICS01
Description=TCP/IP Server
Protocol=TCPIP
NetName=IP地址
Port=14352. 运行客户端
终止:cicscli -X
运行:cicscli –S=SYSTEMNAME
查看状态:cicscli -L
第三节 CICS 日常维护
1、 启动CICS
cicscp –v start dce
cicssfs $CICS_SFS_SERVER
cicscp –v start region $CICSREGION StartType=cold
2、 停止CICS
cicscp –v stop region $CICSREGION –f
cicscp –v stop sfs_server $CICS_SFS_SERVER
cicscp –v stop dce
3、 观察CICS状态
cicstail –r $CICSREGION