Opics资金交易系统部署运维实战:从环境准备到批处理排障

发布时间:2026/10/24 10:19:14
Opics资金交易系统部署运维实战:从环境准备到批处理排障

简介:这份安装维护手册面向Opics系统的实施工程师、数据库管理员及运维人员,用于解决系统从零部署到稳定运行阶段的环境准备、配置调优与日常维护问题。资源为单个doc文档,压缩包大小7.15MB,内容按章节组织,目录结构清晰,便于按需查阅。手册首先介绍Opics系统总体架构,列出硬件、系统及应用软件清单;随后详细说明安装步骤、目录权限定义、数据库创建和ODBC配置,并分别对OSYS批量处理组件和Rate Feed实时数据更新功能给出配置方法;还覆盖ALM安装、报表系统接口以及系统运行维护等内容。对于需要独立完成安装或排查故障的读者,手册中的具体操作路径和参数说明能有效缩短上手时间。已有493人学习下载,适合项目交付、内部培训与日常运维场景参考。

1. 装 Opics 前先看架构:五类机器和三条数据链路

Opics 系统的安装维护,难的不是那套安装包本身,而是它背后一整套立体环境:数据库要跑在 AIX 5.3 加 Oracle 9.2.0.7 for AIX64 上,文件服务器是 Windows 2003 英文版还得装中文字符集,客户端要通过 Citrix 发布,Rate Feed 行情导入还要靠 Excel 共享工作簿一层层往下传。装不好会怎样?头寸算错、汇率导入失败、证实模板打不开,日终报表全是黑匣子。我最初接手这份环境时,光目录权限就核对了三遍。这篇笔记按“环境盘点 → 分角色安装 → Rate Feed 配置 → 常见问题排查 → 验证跑通”的顺序写,适合要部署 Opics 一期、二期,或者正在给存量资金交易系统做迁移维护的运维同学。

2. 环境盘点:AIX 5.3、Windows 2003 与 Opics 目录权限清单

2.1 硬件与软件版本清单:Oracle 9.2.0.7 跑在 AIX 上

先把主机角色理清。Opics 这套环境不是单机版,手册里明确列了五类机器:数据库服务器、文件服务器(兼 Citrix)、Risk 服务器、批量机器、利率导入及风险客户端。数据库服务器是小型机,跑 AIX 5.3,数据库是 Oracle 9.2.0.7 for AIX64;其余机器基本都是 Windows 2003 英文版。注意这里的“英文版”是手册原文要求,不是随便装个中文版就行,后面我会解释字符集为什么这么重要。

主机角色硬件形态操作系统关键软件
Oracle 数据库服务器(2 台)pSeries 小型机AIX 5.3Oracle 9.2.0.7 for AIX64
文件服务器 / Citrix 服务器(2 台)2850 机架服务器Windows 2003 英文版(安装中文字符集)Citrix Server 20 用户、Terminal Server 20 用户、Office 2003 英文版(Access、Excel)、Oracle Sql Net 客户端、Opics 客户端、Opics Risk 客户端
Opics Risk 服务器(1 台)1855 刀片服务器Windows 2003Oracle Sql Net 客户端、MQ、Office 2003 英文版、Opics Risk
批量机器(1 台)PCWindows 2003Oracle Sql Net 客户端、Opics 客户端、Citrix 客户端
利率导入及风险客户端(1 台)PCWindows 2003Oracle Sql Net 客户端、Office 2003 英文版、Opics 客户端、Citrix 客户端

数据库服务器两台的用意很明确,一主一备,主库出问题备库能立刻顶上。文件服务器也是两台,生产一套、灾备一套,Citrix 和 Terminal Server 同在这台机器上,各 20 用户,业务终端通过 ICA 远程登录,不在本地装 Opics 客户端。Oracle Sql Net 客户端是客户端机器连数据库的必经通道,批量机器和 Risk 服务器上都少不了它。Risk 服务器额外装了 MQ,这个中间件负责风险模块和核心系统之间的消息传递,安装时要确认队列管理器名称和手册一致,不一致的话 Risk 界面能打开但收不到交易消息。

这里要特别提醒字符集的事。Windows 2003 英文版默认区域是英语,不装中文字符集的话,Citrix 用户的中文输入法装不上,Opics 里的中文交易对手名称、证实模板的汉字全都会变成乱码。手册里写“安装中文字符集”,我实操时一般会在安装完系统后立刻打开控制面板的“Regional and Language Options”,在 Languages 页勾选 Install files for East Asian languages,区域格式切到 Chinese (PRC) 并重启一次。这个步骤放在装 Citrix 之前做,否则后续改区域设置会触发一堆组件重新初始化。

2.2 文件服务器目录规划:D 盘三个根目录与二十个解包子目录

文件服务器上,手册要求在 D 盘创建三个根目录:opics、opicsdata、opxacc。三者职责完全不同,opics 是系统程序和配置文件的家;opicsdata 是日终备份目录,每天跑 bbkr 文本备份就落在这里;opxacc 是 Citrix 用户的个人目录,每个用户一个子目录。这三个目录我见过有人图省事全建在 opics 下面,结果备份和程序混在一起,日终归档把程序目录撑爆,属于初期布局没想清楚。

安装包解包后,opics 目录下会生成二十多个子目录。对照手册把主要目录的用途捋一遍:

目录名用途
DOCS系统使用文档
OPXACCESS文本证实模板
OPXARC交易数据归档文件,日终按日期生成子目录
opxdb假日设置文件
opxexe应用程序主目录
OPXFAX需传真的文本证实
OPXGRSS报表配置文件
opxhlp系统帮助文档
opxico图标
opxjobOSYS、BSYS 批量步骤列表
opxlog系统日志,每个用户一个日志文件
opxpwd用户权限配置文件
opxrpt报表文件
opxrvaOpics Risk 相关文件
opxsec用户权限配置文件
opxsys程序参数文件
opxupr客户化参数文件
reg注册信息
scripts数据库脚本
sourceRDA 开发代码
Zdata61原始备置数据

另外还有 OPXANA、opxint、opxpub 三个目录,一期里没有启用,二期扩容时才会用到,安装时保持存在就行,不用去动它。解包完成后,D:\opics 要设为共享并映射成 M 盘。这个 M 盘是给谁用的?不是给 Windows 用户当网络盘用的,是给 Opics 客户端程序做路径代号用的。很多配置文件里写的是 M:\opxexe 这种形式,如果你把共享改成别的盘符,客户端登录后链路直接断掉。

2.3 目录权限矩阵:一般用户、系统管理员、批量各能碰什么

目录建好只是第一步,权限矩阵才是这个项目里最值得抄作业的部分。手册里给了一张完整的目录权限定义表,按“一般用户、系统管理员、批量”三类账户分别控制读写、删除、执行权限。我把它简化成实际操作时最容易漏的几条:

目录一般用户系统管理员批量
opxexe(应用程序)读、写读、写、删读、写、删、执行
opxjob(批量步骤列表)读、写、删读、写、删读、写、删、执行
opxlog(系统日志)读、写读、写、删读、写、删、执行
opxsec / opxpwd / opxupr(权限与客户化参数)读、写、删读、写、删读、写、删、执行
opxsys(程序参数)读、写读、写、删读、写、删、执行
OPXARC(归档)读、写读、写、删读、写、删、执行
OPXGRSS(报表配置)读、写读、写、删读、写、执行

这套权限设计有几个明确的意图。系统管理员账户比一般用户多的核心是 delete 权限,用来清理日志和过期的归档文件,普通用户即使写入了坏文件也不能自己删,必须走管理员;批量账户则比管理员多一个 execute 权限,因为 OSYS 批处理需要直接执行 opxexe 下的程序文件,一般用户和管理员日常操作只需要读和写。opxlog 这个目录我特别提一句,批量账户要有删除权限,是因为 osys 进程跑久了日志极大,批处理日终时要能自己清理旧文件,否则磁盘会很快塞满。权限配错时最典型的现象是:Citrix 用户登录后能打开 Opics 主界面,但一保存交易凭证就报“无法写入文件”,到服务器上一查,NTFS 权限少给了写权限。这类问题查起来最耗时间,因为界面正常给了你一个“系统没问题”的错觉。

提示:Windows 2003 上共享权限和 NTFS 权限是两层独立的。共享层给了 Change,NTFS 层没给写,最终结果还是不能写。配置时两层都要过一遍。

3. 分角色安装:Oracle 9.2.0.7、ODBC 与 Citrix 用户配置

3.1 数据库服务器安装:AIX 5.3 上建 Oracle 实例

数据库服务器是整个 Opics 环境的地基,这块装不好,后面所有客户端连接都会出问题。Oracle 9.2.0.7 for AIX64 在 AIX 5.3 上安装,核心流程是先建 Oracle 用户和文件系统,再跑 Oracle Universal Installer,最后用 Database Configuration Assistant 建实例。手册里只是提到“见 ORACLE 安装文档”,我这里按这个场景下合格运维的做法补全。

# AIX 上创建逻辑卷和文件系统,挂载到 /oracle 和 /oradata mklv -y oracle_lv rootvg 8G crfs -v jfs2 -d oracle_lv -m /oracle -A yes -p rw mklv -y oradata_lv rootvg 16G crfs -v jfs2 -d oradata_lv -m /oradata -A yes -p rw # 创建 Oracle 用户和组 smitty mkgroup smitty mkuser # oracle 用户主组设为 dba,补充组设为 oinstall chown -R oracle:dba /oracle /oradata

创建逻辑卷和文件系统的命令,是把新磁盘空间划给 Oracle 用。AIX 5.3 上跑 Oracle 9.2.0.7 有个老坑:系统维护补丁级别不够时,Oracle Universal Installer 会直接报操作系统版本不支持,实际是缺少补丁包。装之前先用 oslevel -r 查一下系统版本,对照 Oracle 安装文档确认补丁要求,别一上来就装,装到一半失败再回头打补丁,清理残留很麻烦。Oracle 安装本身用 oracle 用户登录,解包后运行 runInstaller,按向导走到最后会提示以 root 执行 root.sh,这一步不能省,否则监听器和数据库服务起不来。

实例创建时字符集我一般选 ZHS16GBK。Opics 业务是人民币资金交易,交易对手、证实模板、报表里全是中文,数据库字符集和客户端字符集不一致,查询汇率描述时出来的就是乱码,而且这种问题在安装阶段测不出来,要等到日终跑完报表才发现,排查成本极高。建完库后,用 opics 用户跑 scripts 目录下的建表脚本,导入 Zdata61 目录里的初始备置数据。

-- 用 sysdba 登录,创建表空间和用户(常见做法,具体名字以手册为准) CREATE TABLESPACE OPICS_DATA DATAFILE '/oradata/opics01.dbf' SIZE 4G; CREATE USER opics IDENTIFIED BY opics DEFAULT TABLESPACE OPICS_DATA; GRANT CONNECT, RESOURCE TO opics;

这个步骤做完,建议立刻做一次数据库冷备份。因为后面安装 ODBC 和客户端时会在数据库里写连接测试,万一测试把数据弄脏了,还能有个干净起点。两套数据库服务器一套做生产一套做备库,备库用归档日志恢复,才能保证日终 bbkr 备份之外还有一层恢复手段。

3.2 文件服务器安装:中文字符集、Office 组件与共享映射

文件服务器安装顺序,手册里写得很清楚:Windows 2003 英文版 → 中文字符集 → 中文输入法 → Citrix Server → Office 2003 英文版(Access、Excel)→ Oracle Sql Net。这个顺序不能乱,尤其字符集要在装 Citrix 之前配好。输入法用微软拼音,装完字符集后在控制面板的 Regional Options 里把输入法加进去。Citrix Server 安装时选 20 用户模式,和 Terminal Server 的 20 用户授权是两套东西,都要装。

Office 2003 英文版这里有个细节:必须装 Access 和 Excel 两个组件。Opics 的文本证实模板是 Access 格式的,报表很多走 Excel 导出;如果装的是精简版 Office,把 Access 组件省了,后面打开证实模板时直接报“找不到 Microsoft Access 数据库引擎”,这个报错在日志里完全看不出来,只会反复弹窗。Oracle Sql Net 客户端装好后,用 Net Manager 配置到数据库服务器的连接,服务名要和 tnsnames.ora 里的一致。

D 盘三个目录建好后,把安装包解包到 opics 目录,然后设置共享并映射 M 盘:

# Windows 2003 上设置共享,用户列表按实际创建的 Citrix 用户来 net share opics=D:\opics /grant:citrix5011,change net share opxacc=D:\opxacc /grant:citrix5011,change # 在服务器本机会话里映射 M 盘(发布到 Citrix 后,每个用户会话要单独映射) net use M: \\fileserver\opics

这里说明一下共享设计的逻辑。D:\opics 共享给所有 Citrix 用户,对应系统安装目录,只给 change 权限,也就是能改文件但不能改共享权限;D:\opxacc 也要共享出来,因为 Citrix 用户的个人目录在服务器上是真实路径,但在发布会话里客户端程序访问的是 UNC 路径。M 盘映射这句话写在这里容易让人误以为一劳永逸——实际上在服务器本机映射的 M 盘不会自动带到每个 Citrix 用户的会话里。我一般会把 net use M: 写进 Citrix 发布应用的登录脚本,让每个用户在建立 ICA 会话时自动映射,而不是手动点一次。

3.3 创建 Opics 数据库与 ODBC:手册只给目录名,落地还得靠这几步

手册第 2.3 节只写了“创建 Opics 数据库和 Opics”,第 2.4 节只写了“安装配置 ODBC”,内容空白。实际安装时,这两步串联了文件服务器和数据库服务器,是最容易让人卡住的地方。

创建 Opics 数据库,不是说在 Oracle 里建一个实例,而是在已经建好的 Oracle 实例中创建 Opics 业务用户和表结构。操作路径是在文件服务器上用 Sql Net 客户端连到数据库,以 opics 用户身份执行 scripts 目录下的建表脚本,按脚本里的 readme 说明执行。然后导入 Zdata61 初始备置数据,这个目录存放的是原始的假日表、币种表、汇率模板等基础数据,不导的话系统起来后基础参数全是空的。

ODBC 配置我一般在文件服务器和批量机器上都做,系统 DSN 指向 Oracle:

[OPICS] Driver=Oracle in OraHome92 ServerName=ORCL DatabaseName=ORCL

配置时打开 ODBC Data Source Administrator,在系统 DSN 里点添加,选 Oracle 驱动,ServerName 填 tnsnames.ora 里配置的服务名,然后点 Test Connection 验证。关键是字符集必须和数据库一致,常见做法是在 Oracle ODBC 驱动的高级设置里指定 ZHS16GBK,否则通过 ODBC 读取的交易数据中文全部乱码。这个坑在于:测试连接时显示成功,因为 Oracle 驱动不校验字符集,真正跑批处理时才会把乱码数据写进文件,到时候已经晚了。

3.4 Citrix 用户配置:opx.ini 的四个参数决定数据落在哪

Citrix 用户配置是整个安装过程里最“手工作业”的部分。手册里给了一长串用户名:citrix5011、citrix5010、citrix5012、citrix3080、citrix3078 等等,每个用户都要在 Windows 2003 里创建,赋读写权限。然后在 D:\opxacc 下创建对应的用户目录,每个目录里再建两个子目录:opxacc 和 opxcom。不要把这两个子目录建错位置,Opics 客户端登录后找的就是这两个路径。

[SETTINGS] PCID=OPX001 OPXCOMMON=D:\OPXACC\citrix3053\OPXCOM OPXACCFILES=D:\OPXACC\citrix3078\OPXACC LASTID=GZT

这是从 C:\Windows\opx.ini 拷贝到每个用户 Windows 目录下后要改的内容。四个参数各管一件事:PCID 是这个客户端在 Opics 系统里的唯一终端标识,同一台服务器上绝对不能重复,默认是 OPX001,实际配置时按用户或终端编号改;OPXCOMMON 指向公共目录,存放该用户要共享的公共模板和公共文件,这里是 citrix3053 的 OPXCOM;OPXACCFILES 指向个人私有目录,存放当前用户自己的交易文件、草稿和证实文件,这里是 citrix3078 的 OPXACC;LASTID 是用户组或机构标识,同批用户保持一致,手册里用的是 GZT。

OPXCOMMON 和 OPXACCFILES 这两个路径非常容易搞混。我见过有人把两个参数写成同一个目录,结果用户 A 保存的证实文件用户 B 也能打开覆盖,触发权限冲突,日终生成报表时模板互相污染。原则是:公共放 OPXCOM,私有放 OPXACC。每个用户的 Windows 目录是独立的,拷贝 opx.ini 时必须拷到对应用户的 profile 下,不能只拷到默认管理员 profile,否则用户登录后读的还是旧配置。

Citrix 侧最后一步是发布应用程序。在 Citrix 管理控制台里发布三个图标:Opics、Opics Risk、Convert。Convert 是文件转换工具,二期做北方之星数据导入时会用到,发布时别漏掉。业务终端不装 Opics 客户端,只装 Citrix 客户端,通过 ICA 会话访问文件服务器上发布的这三个应用,数据不会留在终端本地,这对资金交易系统的安全边界是有利的。

3.5 Opics Risk 与客户端安装要点

Opics Risk 服务器单独一台 1855 刀片,安装内容比文件服务器少:Oracle Sql Net 客户端、MQ、Office 2003 英文版、Opics Risk 客户端。MQ 的配置要核实队列管理器名,手册里没有给具体名字,实际项目中一般是安装文档附带,装完要跑一次连通测试,确保 Risk 能收到交易消息。批量机器装 Oracle Sql Net、Opics 客户端和 Citrix 客户端;利率导入及风险客户端多装一个 Office 2003 英文版,用来处理 Rate Feed 的 Excel 行情文件。

客户端安装策略我建议统一走 Citrix 发布,不要在各台终端上单独装 Opics 客户端。原因很简单:资金交易系统的客户端版本必须一致,散装客户端很容易出现版本漂移,有的人是 152042 升级包后的版本,有的人还是旧的,日终跑批时数据格式对不上。通过 Citrix 集中发布,服务器上更新一次,所有终端下次登录自动用新版本,运维成本低很多。批量机器上的本地 Opics 客户端是给 OSYS 批处理用的,不受这个限制。

4. Rate Feed 与 OSYS:行情数据从 Excel 进 OPICS 的三层链路

4.1 行情终端侧:Excel 共享工作簿与五分钟自动保存

Rate Feed 是 Opics 的前置行情输入环节,配置分三段:行情终端、Opics Risk 客户端、Opics 系统自身。行情终端上有一个共享目录(手册里对应的是行情终端共享目录,这里统一用 C:\QUOTES 举例说明),目录下放四个 Excel 文件:CNY INREST RATE.XLS、DLSP.XLS、FX RATE.XLS、INTETEST RATE.XLS。分别对应人民币拆借利率、存贷款数据、外汇汇率、集团内部利率。这四个文件是行情源头,后面 Risk 端拉数据全指着它们。

拿到这四个文件后,在 Excel 2003 里依次打开,做两个设置:第一,Tools 菜单里打开 Share Workbook,在 Editing 页勾选 Allow changes by more than one user;第二,Tools 菜单里打开 AutoSave,设置每五分钟自动保存一次。共享工作簿是为了让多个行情维护人员能同时修改不同 sheet 而不互相锁文件,自动保存是为了保证 Risk 端拉取时拿到的不是半天的旧数据。

设置里有个细节:AutoSave 功能默认不在 Excel 2003 的工具栏里,需要在“加载项”里启用,找不到就回 Office 安装盘补组件。共享工作簿模式下,Excel 会用编辑者名字给修改加标记,后续更新数据时看到带方括号的单元格别紧张,那是共享编辑的正常现象。这里最容易翻车的是文件被某个人以非共享方式独占打开,其他用户连接时看到“文件正在使用”的提示,这种情况下 Risk 端刷新数据会失败,但不会报错,因为 Excel 会缓冲读取,表现出来就是数据一直停滞。

4.2 Risk 客户端侧:Z 盘映射与两分钟刷新

Opics Risk 机器上,先把行情终端共享目录映射成 Z 盘,这一步和文件服务器上的 M 盘映射是同一套路。Risk 端有四个自己的工作文件:CNYIR.XLS、DLSP.XLS、FX.XLS、IR.XLS。这四个文件以行情终端的同名文件为数据源,通过 Excel 的“获取外部数据”功能建立连接。

查询名称:CNYIR_FEED 数据源:Z:\CNYIR.XLS 刷新频率:每 2 分钟刷新一次 打开文件时刷新:是

在 Excel 2003 的数据菜单里,选择“获取外部数据 → 新建查询”,源类型选 Excel 文件,路径指向 Z 盘对应文件,然后在数据区域属性里设置刷新频率为 2 分钟。这里需要注意的是:Risk 端的 2 分钟刷新和行情终端的 5 分钟自动保存是配合关系,源文件 5 分钟落一次盘,Risk 端最多晚 2 分钟拿到新数据。如果你把刷新频率改成 1 分钟,反而会在源文件还没保存时读到旧数据,形成“数据没变”的假象,排查时容易误判行情中断。实际观察时间戳时,源文件保存时间和 Risk 端数据变化时间相差 2 分钟以内属于正常。

4.3 OPICS 系统侧:REVP、REVX、RATE 映射怎么配

行情文件里的数据是原始市场报价,要让 Opics 业务模块认这些数据,还要在系统侧做映射。手册给的配置项是四张表:汇率映射里 REVP 做期限定义、REVX 做表映射、REVI 做汇率检查;利率映射里 RATE 做表映射、RHIS 做利率检查。

REVP 定义期限段,比如隔夜、一周、一个月这些标准期限;REVX 把行情文件里的币种和期限组合映射到 Opics 内部科目;REVI 是汇率校验规则,比如汇率偏离上一收盘价超过一定比例就拦截。利率侧类似,RATE 表负责市场利率到资金利率的映射,RHIS 做历史利率和当日利率的交叉校验。配置顺序先 REVP,再 REVX,最后 REVI,因为表映射依赖期限定义,校验规则依赖映射关系。如果批处理跑完提示“无此期限”或者“汇率缺失”,检查顺序基本就是往前走:先看 REVP 有没有定义这个期限,再看 REVX 映射是否覆盖该币种,最后看 REVI 的校验阈值是不是设得太严。

这套映射配置,属于装的时候不觉得重要、跑起来全是问题的地方。我见过有人在 REVX 里少配了一个币种对,日终汇率导入时那一行的数据被整体跳过,结果其他币种都正常,只有一个币种的头寸怎么都对不上,查了两天才定位到是映射表漏配。

4.4 OSYS 批处理:D22RATE0001 与二期新增的 D22SMCL

OSYS 是 Opics 的批量调度进程,Rate Feed 导入的数据要经过 OSYS 的批处理步骤才能真正进入业务系统。手册里提到了一个批次 D22RATE0001,下面挂了利率导入和汇率导入两个程序:RTXTOSYS 负责利率导入,XTFXOSYS 负责汇率导入,另外还有 ISYSOSYS 做 BR22 导入、ISYSOSY1 做 BR00 导入。

批次 / 程序作用
D22RATE0001日终利率汇率导入的批次控制
RTXTOSYS利率导入
XTFXOSYS汇率导入
ISYSOSYSBR22 批量导入
ISYSOSY1BR00 批量导入

日终批量时,OSYS 按步骤列表依次执行这些程序,Rate Feed 落地的行情文件被读入数据库。二期项目里新增了北方之星接口,核心是 D22SMCL 进程:北方之星系统通过映射网络驱动器的方式连接到 Opics 文件服务器,定时运行 osys 的 D22SMCL,读取人民币债券收盘价数据,自动录入 Opics 进行债券市值重估(Mark To Market)。这个进程配置时要注意网络驱动器的映射不能断,北方之星那台机器重启后映射会丢失,得在计划任务里加一条映射命令。

Dealing 3000 交易终端接口是另一条链路,通过 RS-232 串口线和交易系统服务器通信,定时运行 osys 进程把外汇交易、拆借交易自动导入。串口是老式协议,配置里最麻烦的是波特率和串口号,线松了或者端口被别的程序占用,osys 进程能启动但读不到数据。排查时不要只盯应用日志,先看串口状态是不是通了,这是二期接口最容易忽略的物理层问题。

5. 常见问题排查:安装维护阶段最常翻车的五个点

5.1 现象一:Citrix 用户登录后 OPICS 找不到 M 盘

现象:Citrix 用户通过 ICA 登录后能打开 OPICS 主界面,但点任何菜单都提示找不到 M 盘路径,程序无法正常使用。

原因:共享 D:\opics 时只设了共享权限,NTFS 权限没有给 Citrix 用户;或者 M 盘映射只在管理员会话里执行过,用户会话里没有这个盘符。Windows 2003 的驱动器映射是按会话隔离的,管理员映射的 M 盘不会自动出现在每个用户会话中。

解决:先检查 D:\opics 的 NTFS 权限,给 citrix 用户组至少“读取和写入”级别;再把 net use M: 命令写进 Citrix 发布应用的登录脚本,保证每个 ICA 会话建立时自动映射。验证方法是用测试用户登录后在命令提示符里执行 net use,看有没有对应的 M 盘连接记录。

5.2 现象二:opx.ini 改了,界面还是空白

现象:按手册创建 Citrix 用户并修改 opx.ini 后,该用户登录 OPICS 能看到主界面,但交易列表、证实模板、个人文件全部空白,像是没加载任何个人数据。

原因:opx.ini 里 OPXCOMMON 和 OPXACCFILES 路径写反了,或者 d:\opxacc 下对应的用户目录里没有建 opxacc 和 opxcom 两个子目录。还有可能是 opx.ini 拷到了默认管理员 profile,没有拷到该用户自己的 Windows 目录。

解决:逐一核对 opx.ini 的四个参数,确认 OPXCOMMON 指向子目录 OPXCOM,OPXACCFILES 指向子目录 OPXACC,且实际目录存在。PCID 在同一台服务器上必须唯一,重复会导致用户数据互相覆盖。用该用户登录后检查 Windows 目录下的 opx.ini 是否为修改后的版本,而不是管理员 profile 里残留的旧文件。

5.3 现象三:Rate Feed 上游更新了,Risk 端数据不动

现象:行情终端确认四个 Excel 文件已经保存了最新数据,但 Opics Risk 端对应的文件数据一直不变,刷新没有效果。

原因:行情终端的 Excel 文件没有启用共享工作簿,被某个编辑者以独占方式打开,Risk 端读取时被文件锁卡住;或者外部数据区域的刷新频率设置成了“手动刷新”,没有按两分钟一次的参数配置。

解决:先到行情终端确认四个文件都在 Tools → Share Workbook 里勾选了 Allow changes by more than one user,并启用了 AutoSave 五分钟保存。再回到 Risk 端,打开数据区域属性,把刷新频率改为每两分钟一次,并勾选“打开文件时刷新”。如果文件被独占锁住,找到占用会话关闭即可。

5.4 现象四:opxlog 和 opxarc 把磁盘撑满

现象:系统运行一段时间后,文件服务器 D 盘可用空间快速下降,排查发现 opxlog 目录下 osys 用户的日志文件特别大,opxarc 目录下每天一个归档目录也在持续增长。

原因:osys 进程是实时监控批处理,日志不轮转,长时间运行会积累到几个 GB;opxarc 按日生成归档目录,每个目录里是当日交易数据文件,一个月不清就会占用大量磁盘。

解决:把 opxlog、opxarc、opicsdata 三个目录列入月度运维计划,定期转存到带库,转存完成后删除服务器上的旧文件。手册的建议是一个月转存一次。我在实际操作中会增加一条日终批处理步骤,自动保留最近 30 天的日志,其余压缩后放到归档区,避免月底一次性清理时磁盘已经满了。

5.5 现象五:二期升级后 D22SMCL 起不来,日志报缺表

现象:二期升级程序更新完后,OSYS 里新加的 D22SMCL 进程启动失败,日志提示数据库里缺表或字段不存在,北方之星的债券收盘价数据无法导入。

原因:二期升级包没有按顺序执行。手册里给的更新顺序是 Phase II 下 case 152042、152412 → case 152562 → case 154293、154294 → case 154681,每个文件夹里都有 readme.doc 说明更新步骤。跳顺序或者漏跑数据库脚本,就会导致程序文件是新版、数据库结构还是旧版的不一致状态。

解决:升级前先把 d:\opics 下的 opxdb、opxexe、OPXFAX、OPXGRSS、opxhlp、opxico、opxint、opxjob、opxpub、opxpwd、opxrva、opxsec、opxsys、opxupr、scripts、source 目录完整备份到 d:\backup\before change。然后严格按 case 顺序逐包更新,每个包按 readme.doc 操作,涉及数据库的脚本用 sqlplus 以 opics 用户执行完,再启动 osys 进程验证 D22SMCL。万一升级失败,把 d:\backup\before change 还原,再从头走一遍,这个备份就是后悔药。

6. 装完怎么验证:五步检查日志、归档和备份

6.1 上线前的五步验证清单

安装和配置完成后,不要急着交机,按下面五步做一次完整验证。这套验证动作我每次部署迁移都会强制走一遍,比看安装日志管用得多。

验证项操作预期结果
目录权限用 citrix 测试用户登录,打开 OPICS 并保存一个测试凭证保存成功,个人目录 opxacc 下出现对应文件
M 盘映射在 Citrix 会话内执行 net use显示 \fileserver\opics 已连接,状态为“确定”
日志生成打开 OPICS 做一次查询操作,然后查看 opxlog 目录当前用户名对应的日志文件生成,末尾有时间戳
批处理跑通手动触发 D22RATE0001 批次执行完成无错误,opxarc 目录下出现按日期命名的目录
行情刷新对比行情终端源文件和 Risk 端 Z 盘文件的时间戳两者时间差在两分钟以内

每一步的具体指向要心里有数。目录权限验证是为了确认 NTFS 权限和共享权限都生效,这一步能防住第一类翻车;日志生成验证说明客户端到服务器的写链路没有问题;批处理验证是确认 OSYS 调度和 Rate Feed 导入链路完整,opxarc 出现新目录就证明日终归档机制在正常工作。这五步全部走完,才能说系统达到了可以上生产的程度。

6.2 日终备份恢复演练

还有一个验证不能省:日终备份。Opics 每天日终通过 bbkr 命令做完整的文本备份,命令已经包含在批量过程里,备份输出到 d:\opicsdata 目录,每天根据生产系统日期生成一个独立目录。验证时先确认当天日终后 opicsdata 下生成了新目录,再抽查里面的文本备份文件数量,最后我建议做一次恢复演练:把某一天的备份文件复制到一台临时机器,按手册的恢复流程恢复到临时数据库,比对交易总笔数和当日日志,确认备份文件不是空壳。

以后每次部署迁移,我都会强制走一遍这五步验证加一次恢复演练,确认日志、归档、备份三个目录都有新文件才敢交机。这套流程看着琐碎,但资金交易系统出问题就是头寸不准、报表延后的事故级别,多花十分钟验证,值得。希望帮到你。

本文还有配套的精品资源,点击获取