Professional Documents
Culture Documents
SOP使用手册
SOP使用手册
联想金融事业部
2003-5-19
地址:北京市海淀区上地创业中路 32 号(100085) 1
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
目录
1. 概述 ............................................................................................................................ 5
4.2.2 正式生产模式....................................................................................... 9
6. 常见错误和问题解答 .............................................................................................. 10
6.1 错误分析 ............................................................................................................ 10
6.1.1 通信的日志的格式............................................................................. 10
6.1.2 常见错误............................................................................................. 11
6.1.3 平台级错误......................................................................................... 11
地址:北京市海淀区上地创业中路 32 号(100085) 2
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
6.2 常见问题解答 .................................................................................................... 12
6.2.1 SOP 是否只能 cbs 用户启动? ....................................................... 12
6.2.2 怎样使修改的接口生效?................................................................. 12
6.2.3 在开发方式下怎样生成交易的可执行程序?................................. 13
6.2.4 有的交易会出现前台输入的数据到了后台就不对了,为什么?. 13
6.2.9 有时候一个交易总是失败,为什么?............................................. 13
7. 平台命令 .................................................................................................................. 15
7.1 SOPSVR ................................................................................................................ 15
7.2 TCPTEST .............................................................................................................. 16
7.3 TCPSVR ................................................................................................................ 16
地址:北京市海淀区上地创业中路 32 号(100085) 3
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
7.4 SOPMNG ................................................................................................................ 16
7.5 SOPLDPARA .......................................................................................................... 16
7.6 SOPWATCH ............................................................................................................ 16
7.7 SOPLOADCF .......................................................................................................... 17
7.8 BUILDT ................................................................................................................ 17
7.9 BUILDR ................................................................................................................ 17
地址:北京市海淀区上地创业中路 32 号(100085) 4
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
1. 概述
2. SOP 的参数配置
run.env 文件内容如下:
RUNDIR=$HOME/src/comm;export RUNDIR
PATH=$HOME/bin:$RUNDIR/bin:$RUNDIR/etc:$RUNDIR/tool:$RUNDIR/ecdt:$PATH;
export PATH
RUNLOG=$HOME/log;export RUNLOG
LIBPATH=$RUNDIR/lib:$LIBPATH;export LIBPATH
LD_LIBRARY_PATH=$RUNDIR/lib:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH
RUNCONFIG=$RUNDIR/etc/run.bin;export RUNCONFIG #SOP 的配置二进制文件
下面的环境变量当采用 TCPSVR 通讯时使用:
MAXCHLDPROS=60;export MAXCHLDPROS 服务进程最大数目
CHLDPROS=20;export CHLDPROS 服务进程默认数目
主要的环境变量是下面几个:
RUNDIR 此环境变量设置 SOP 平台运行环境的目录,目前为$HOME/src/comm
RUNLOG 设置 SOP 日志目录,存放相关日志 ,目前为$HOME/log
RUNCONFIG SOP 配置文件全路径名,目前为$RUNDIR/etc/run.bin
LIBPATH 增加动态连接库的存放路径,本环境变量适用于 IBM AIX 环境.
LD_LIBRARY_PATH 增加动态连接库的存放路径,本环境变量适用于 HP-UX 环境.
地址:北京市海淀区上地创业中路 32 号(100085) 5
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
FORMRECORD——FORM 的最大条数
USERS——设定交易换冲区的大小,此数目应等于服务进程的最大数目 MAXCHLDPROS.
MONITOR ——监控进程的轮询时间,以秒为单位
TIMEOUT——交易进程的最大超时时间
SysfldNUM——平台允许开关量的最大个数
CommfldNUM——COMMFLD 单元的个数,若定义的 Commfld 个数小于实际的数目,则系统
为 COMMFLD 分配的共享内存会小于实际需要,所以此数字要和实际相符。
PUBSPACE——公共资料空间,包括:进程表、开关量、各种数据单元的定义、索引区。
USERSPACE——每个服务进程的资料空间,指的是该进程的所有资料空间,而资料空间包括:
各种资料存储结构 Tranfld 单元的资料空间、Commfld 的空间、FORM 或者 OBJECT 的存储空间。
平台所占用的共享内存大小:
PUBSPACE+USERSPACE*USERS
在命令行方式下,在编辑完参数以后,执行装载程序
soploadcf run.conf
生成由环境参数 SOPCONFIG 指定的文件。
2.3 开关量配置
开关量的配置文件名:$RUNDIR/etc:sw.conf
开关量配置共三项:
■开关量名称
■开关量的中文说明
■开关量的初始取值(0:关,1:开)
每个开关量一行,开关量是 SOP 平台提供的一种机制,供交易系统使用,不是强制要求。
2.4 公共变量配置
公共变量的配置文件名:$RUNDIR/etc:commfld.conf
地址:北京市海淀区上地创业中路 32 号(100085) 6
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
MAXBUFSTYPE 32 #Default
SCANUNIT 10 #监控轮询一个时间单位是多少秒
SANITYSCAN 1 #间隔几个时间单位
BBLQUERY 30 #default 30
BLOCKTIME 240 #服务超时时间
SYSTEM_ACCESS FASTPATH #默认值 共享内存访问模式 PROTECTED—保护模式
*MACHINES
soptest LMID=cbs #uname -a
TUXCONFIG="/cbs/src/comm/bin/tux_sop.tux"
TUXDIR="/home/tuxedo"
APPDIR="/cbs/src/comm/bin"
MAXWSCLIENTS=80
*GROUPS
"GROUP1" LMID="cbs" GRPNO=4
*NETGROUPS
*SERVERS
"WSL" SRVGRP=GROUP1 SRVID=3
CLOPT="-A -- -I 600 -n //192.168.0.2:4500 -d /dev/tcp -m 10 -M 2 0-x 4"
tuxsvr SRVGRP=GROUP1 SRVID=10
CLOPT="-A -e /cbs/log/err.log -o /cbs/log/out.log"
RQADDR="sop_q0" #MSSQ 方式 multiple server single queue
RQPERM=0600 REPLYQ=Y RPPERM=0600 MIN=3 MAX=50 CONV=N
SYSTEM_ACCESS=FASTPATH
MAXGEN=5 GRACE=0 RESTART=Y
*SERVICES
RUNSERVER
LOAD=50 PRIO=50 #default
BUFTYPE="ALL" #default 接受所有类型
*ROUTING
地址:北京市海淀区上地创业中路 32 号(100085) 7
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
3. SOP 平台的安装与配置
首先要设置环境变量,在$HOME/src/etc/cbs.env 中增加一行:
. $HOME/src/comm/etc/run.env,执行 run.env 中的环境变量设置,这里的 cbs.env 是
整个业务系统的环境变量配置.
目前只有手工方式:
1.程序打包
sop 平台目录为$RUNDIR,把$RUNDIR/etc RUNDIR/bin RUNDIR/tool RUNDIR/lib 打
包,在生产机解开。
2.在生产机上安装 informix,建立数据库 cbs,装入参数表数据。
3. 建立环境变量:
在.profile 中执行$HOME/src/etc/cbs.env
4. 加载 SOP 的配置参数
在$RUNDIR/etc 目录执行:soploadcf run.conf
生成 SOP 的配置文件 run.bin.
5. 初始化 SOP 通讯系统的初始化密钥(采用 sop 通讯加密模块的情况下)
在系统正式上线时,要由银行专门负责人员来初始化通讯的初始化密钥,密钥要求输入 8 个数
字或字符,提示输入两遍。
执行 sopinitkey
同时在 COP 前置机上也要初始化密钥 init_encrypt.
6. 设置业务系统的后台加密帐户密码的密钥(采用密码加密模块的情况下)
在系统正式上线时,要由银行专门负责人员来设置业务系统的后台加密帐户密码的密钥,密钥
要求输入 8 个数字或字符,提示输入两遍。
执行 sopinitpwd
注意:设置的密码一定要牢记,系统用它来加密帐户的密码。以后如果密钥文件丢失或硬件问
题引起密钥文件丢失,要用原来的密码来重新设置业务系统的后台加密帐户密码的密钥。生成的秘
钥文件为$RUNDIR/etc/.deskey,可以备份此文件。
7. 在后台主机表中增加 COP 前置机的地址(TCPSVR 方式下)
注意:为了防止非法用户侵入业务系统,SOP 对在后台主机中没有登记的地址拒绝服务。
需要建立$RUNDIR/etc/run.conf 中环境变量对应的下列目录:
$HOME/log 日志目录,可写可读 $RUNLOG
$HOME/ftp 传文件目录,所有人可写可读 $WORKPATH
4. SOP 的启动和停止
地址:北京市海淀区上地创业中路 32 号(100085) 8
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
停止:sopsvr stop
tftserver stop
4.2 联机服务
4.2.1 开发模式
4.2.2 正式生产模式
4.2.2.1 tcpsvr 通讯
4.2.2.2 TUXEDO 通讯
启动: tmboot –y
停止:tmshutdown –cy
监控:tmadmin->psr
5. SOP 的平台的运行目录结构
5.1 目录结构
在$RUNDIR 目录:
bin 与 SOP 可执行程序
etc 配置文件(平台及通信)
tool 编译连接工具
lib 动态连接库
5.2 文件清单
run.env——SOP 环境变量文件
run.conf——平台参数配置文本文件
地址:北京市海淀区上地创业中路 32 号(100085) 9
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
sw.conf——开关量配置文件
sopshm.cfg——系统保留,必须
sopsem.cfg——系统保留,必须
tcpshm.key ----系统保留,必须
tft.conf ----文件传输配置文件
6. 常见错误和问题解答
系统日志
系统的日志分为两级:平台和应用;
平台一级的日志主要包括:平台启动的日志、通信日志;
应用的日志主要包括:各种构件的出错与跟踪日志,主要是由应用编写人员产生的日志。日志是按
照交易码来区分的。
日志目录为:$RUNLOG
命名规则:
系统日志:
平台日志:sopyyyymmdd.log
交易调度日志:sopcomyyyymmdd.log
开发方式通讯日志: tcptest.log
正式生产方式通讯日志: tcpsvr.log
应用日志:同交易码。
6.1 错误分析
在正常情况下,平台是不产生日志的,为了便于跟踪,系统设置了开关,在管理工具中可以将其打
开。如下图:把日志级别改为开启。
6.1.1 通信的日志的格式
地址:北京市海淀区上地创业中路 32 号(100085) 10
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
交易调度日志是 SOP 平台最重要的日志,通信日志的涵盖内容包括系统的解包、打包记录,在调用
交易构件之前的信息都在通信日志中。
通信日志的基本格式为:
[时间] [进程号] 跟踪信息
跟踪的信息主要包括:
接收的通信缓冲区内容
创建输入输出数据结构的过程
解交易头的过程(域的名称、域的值、相对位置等)
调用交易的返回结果
调用外挂程序的返回结果
调用交易的返回结果
组织交易包的过程
组织输出交易头的过程(域的位置、域的值、相对位置等)
提交或者回滚事务
发送的通信缓冲区内容
6.1.2 常见错误
在 SOP 平台中,常见的错误是:
1) 交易通讯失败或交易处理失败:在 COP 中出现这种情况是多方面的:交易超时被中断;应用的原
因而出现的 core dump,在检查是否此类错误时,应首先检查$RUNLOG 是否有 core 文件产生;交易
前处理失败,如联机交易不允许;交易信息定义的不对,不允许交易执行.
2) SOP 参数数据库是非常重要的参数,主机端修改交易接口时,一定要同时更新程序,否则可能会
异常;
3) SOP 与 COP 作为一个整体,当后端已经修改了输入输出,而前端没有及时更新,会出现异常情况,
如传到后台的字段值和输入的不相符。
6.1.3 平台级错误
地址:北京市海淀区上地创业中路 32 号(100085) 11
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
新对象的定义。
在表格中引用了未定义的单元
可能的原因是修改了表格的定义,而没有更新执行代码;或者更新了执行代码,而没有更
新表格的定义。
交易中无此表格
在交易的输入对象中包含了表格,但在交易调度中未找到,察看表格的定义是否存在。
引用了未定义的开关量
检查是否有该开关量的定义,可以察看共享内存中是否装入了该共享内存的定义。
交易动态链接库中无该交易的执行代码
交易没有提交或生成动态链接库时出现错误
该交易的描述信息未找到
在共享内存中没有找到该交易的定义,检查配置参数数据库中 pjyxx 表是否存在该交易的
定义,或者 sopwatch –t 交易码察看,重新装载。
对象定义未找到
在共享内存中没有找到对象的定义,检查配置参数数据库 pobms 表中是否存在对象的定
义,重新装载。
表格定义未找到
在共享内存中没有找到表格的定义,检查配置参数数据库 pfmms 表中是否存在对象的
定义,重新装载。
数据单元定义未找到
在共享内存中没有找到数据单元的定义,检查配置参数数据库 psjzd 表中是否存在数
据单元的定义,重新装载。
未找到 Comfld 定义
在共享内存中没有找到 Comfld 的定义,检查配置参数数据库 pggbl 表中是否存在
Comfld 数据单元的定义,重新装载。
6.2 常见问题解答
6.2.2 怎样使修改的接口生效?
地址:北京市海淀区上地创业中路 32 号(100085) 12
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
6.2.3 在开发方式下怎样生成交易的可执行程序?
6.2.4 有的交易会出现前台输入的数据到了后台就不对了,为什么?
这种情况一般是因为前台的接口和后台的接口不同(顺序不同或字段的个数不同)。一般前台在
/usr/cop/data/sock 下查看接口文件,在后台用 sopwatch 查看接口。
在后台首先要保证 IDE 中定义的接口要更新到共享内存中,对象和 FORM 定义中的顺序号一定
要填写。
6.2.9 有时候一个交易总是失败,为什么?
地址:北京市海淀区上地创业中路 32 号(100085) 13
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
没有要求,但最好不要属于 informix 组,防止误操作。
6.2.11 交易的超时怎么控制的?
后台超时分两个级别:
1)系统级的超时在$RUNDIR/etc/run.conf 中配置,
一般为 TIMEOUT 10
可以修改,执行 soploadcf run.conf 生成二进制文件 run.bin,重新启动 SOP 才能
生效。
2) 交易级超时在交易描述信息中定义,可以用 IDE 修改”超时时间”。
超时判断:
首先判断交易在后台运行的时间是否超过系统级超时,如果超过,再判断是否超过交易级超时,
如果都满足,SOP 平台就会断掉数据库会话,交易如果进行数据库操作就会返回失败;如果交易还在
运行,那么可能不是阻塞在数据库操作上,SOP 平台会判断是否到达两倍的超时时间,如果达到,
就会断掉交易进程。
当交易超发生时,会纪录在 sopsvr+日期.log 中。
6.2.12 有时新加的交易会失败,不能进入交易逻辑?
这是因为交易描述信息定义的不对,几个主要的字段如下:
交易标志:0:不允许交易 1:允许交易 (要定义为 1)
6.2.13 程序中是否能出现绝对路径?
在程序中不能出现绝对路径,头文件和程序要存放在规定的目录下,特殊需求也要用相对路径,
因为我们的系统的起始目录不一定都为/cbs。
目前发现 usrdb 下有的程序出现/cbs/路径的头文引用,请大家修改!
系统提供统一的数据库标准构件的目的有下面几个:
减少程序的书写量,提高开发效率:不用自己去定义麻烦的数据变量,不用去写操作语句。
统一程序的风格,提高程序的可读性:
减少数据库操作语句出现错误的可能性,程序员不用去考虑复杂的数据并发、数据库锁等问题。
如果自己写操作语句就要考虑纪录的锁,防止出现数据的幻像。
降低系统对数据库的依赖,系统可以方便的移植到不同的数据库平台。
使数据库表结构的修改对系统的影响降低到最小。
6.2.15 标准构件怎样生成?
在 pfzgj 中定义查询条件;
在 pkbgl 中定义表的中文名;
执行 crtstddb
6.2.16 调用标准修改构件为什么有时报时间戳被修改?
标准修改构件的前面必须调用查询构件,因为查询构件会纪录下查询时这条纪录的时间戳,当
调用修改构件时,修改构件首先会检查这个时刻这条纪录的时间戳是否和查询时的时间戳一致,如
地址:北京市海淀区上地创业中路 32 号(100085) 14
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
果不一致,就说明在修改的时候看到的是这条纪录的幻像,这天纪录在查询以后,又被别的进程修
改过了。
用 tuxedo 用户登陆,
$cd bin
$lic.sh
执行命令 tmloadcf ;
如:
cd $RUNDIR/etc
tmloadcf tux_sop.ubb
6.2.19 各种构件的存放目录是否要统一?调用关系怎样?
6.2.20 交易或构件是否可以自己定义全局变量?
SOP 要求交易和构件的全局变量要统一定义,自己不能定义全局变量。
7. 平台命令
7.1 sopsvr
命令行方式下,启动停止平台
调用格式:sopsvt start[stop] [-d ]
地址:北京市海淀区上地创业中路 32 号(100085) 15
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
7.2 tcptest
功能:开发方式下的通讯平台
调用格式:tcptest start/stop port [-d ] [-v]
7.3 tcpsvr
功能:正式生产环境(tcp/ip)的通讯平台
调用格式:tcpsvr start/stop port [-d] [-v]
注意:在同一主机上可以同时存在开发环境和生产环境,可以采用不同的端口。
如:tcptest start 4000
tcpsvr start 5000
7.4 sopmng
平台集成管理工具
7.5 sopldpara
7.6 sopwatch
sopwatch 包含以下几个参数:
-t all|trancode 查看全部或某一交易的参数
如 sopwatch –t 0001 查看 0001 交易输入输出参数
-o all|objname 查看全部或某一对象的所有参数
如 sopwatch –o DSP001 查看对象 DSP001 在内存中的定义
-f all|formname 查看全部或者某一表格的参数
如 sopwatch –f FRM001 查看表格 FRM01 的所有参数
-d all|ddname 查看全部或者某一资料字典项的信息
如 sopwatch –d ACNO 查看数据项 ACNO 的定义
-p all|ddname 查看全部或者某 COMMFLD 数据项的信息
如 sopwatch –p ERID 查看数据项 ERID 的定义
-i 查看共享内存区的控制信息
地址:北京市海淀区上地创业中路 32 号(100085) 16
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com
-r 间隔时间,仅在-i 参数下有用
7.7 soploadcf
7.8 buildt
功能:在开发环境下把已经编译完的交易生成可以单独测试的可执行程序。同时会让你选择是否重
新把交易信息装入平台内存区。如:
reload transaction input/output parameter?(y/n)"
如果你的接口变化了,请选择 y
调用格式:buildt trancode
7.9 buildr
地址:北京市海淀区上地创业中路 32 号(100085) 17
电话:(010)62988888 传真:(010)62987195/96 公司网址://www.lenovo.com