- 论坛徽章:
- 0
|
在图形用户界面(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_US
1.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 –nopause
2.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/$HOSTNAME
2.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”生成sybase1pc
l 配置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=TEST
4. 设置Program
*命令行方式:
cicsdelete –c pd –r CICS01 TELECOM
cicsadd –c pd –r CICS01 TELECOM PathName=… RSLKey=public
2.6 Client配置
1. 修改CICSCLI.INI
“cd /usr/lpp/cicscli/bin”
“vi CICSCLI.INI”
加入以下内容:
Server=CICS01
Description=TCP/IP Server
Protocol=TCPIP
NetName=IP地址
Port=1435
2. 运行客户端
终止: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 |
|