10.168.100.3 acct_qz host1_alias
10.168.106.1 acct_ha host2_alias
10.168.107.1 acct_xx host3_alias② 文件$INFORMIXDIR/etc/sqlhosts:
#dbservername nettype hostname servicename
acct_online onsoctcp acct_qz sqlexec③ 文件/etc/services:
#service_name port#/procotol aliases
sqlexec 2000/tcpsqlrmtlitcp程序与普通的客户机通信软件一样要通过服务sqlexec对应的端口号2000与服务器建立连接,所以端口号2000必须保证全局一致 。客户机acct_ha和acct_xx上的这三个文件内容基本上要与服务器acct_qz上的三个文件一样 。2 在单机上运行客户服务器应用程序
由于惠安县支行最近采用市行推广的新的基于INFORMIX-OnLine客户服务器结构的会计应用程序,笔者出于维护工作的需要,有必要学习和熟悉这一新的应用程序,但苦于本单位还没有另外一套备用的客户服务器网络运行环境而无法实现 。后来经笔者研究终于找到了一种巧妙的方法,可以将整套应用程序安装在一台机器上运行 。另外在开发和研究时将客户服务器结构转为在单机上运行也是很有用的,在不具备客户服务器网络条件时同样也能够在单机上编写客户服务器结构的应用程序 。正是因为数据库名可以支持两种格式从而使得单机运行成为可能 。单机上运行SCO Unix 3.2和OnLine 5.0,而且不必安装Net或Star 。2.1 建立数据库服务器在单机上建立与服务器主机名字(acct_qz)一样的数据库服务器:acct_qz,这一点最重要了,是整个应用程序能够在单机上运行的关键 。在单机上也要建立icbacct用户,其.profile文件必须输出变量:INFORMIXSERVER=acct_qz 。2.2 建立足够大的数据库空间文件和逻辑日志
修改tbconfig的几个参数:
ROOTPATH /dev/online1
ROOTSIZE 50000
LOGFILES 20
LOGSIZE 500
LTAPEDEV /dev/null
DBSERVERNAME acct_qz
将系统参数SHMMAX改为1048576,SHMMNI改为500,然后在root用户下运行:
# cat /dev/null > /dev/online1
# chown icbacct /dev/online1
# chgrp informix /dev/online1
最后在icbacct用户下运行:tbinit -i建立数据库空间 。2.3 用ESQL/C生成存储过程因为OnLine 5.0不能用isql直接使用SQL语句生成存储过程,所以一般要使用ESQL/C编写专门的C语言程序来增加或更换一个存储过程 。$drop procedure tb2;
$create procedure from "/usr/icbacct/proc/tb2.sql";
上面两条语句先删除已存在的存储过程tb2,然后再生成新的存储过程,否则无法生成 。因为我们不可能为每一个存储过程都编写一个专用的C语言程序,但由于drop语句不能带可变参数运行,比如不支持下面这样的语句:$drop procedure $spname;,所以只好编写一个删除全部存储过程的程序和一个生成全部存储过程的程序,每次要更换一个存储过程都不得不删除全部存储过程然后再重新生成,笔者认为这是一种不好的方法 。为此笔者编写了一个C语言程序用来增加或更换一个存储过程,可以带命令行参数运行 。方法是在客户机或单机上直接运行aproc <存储过程名> ,就可增加或更换服务器上的一个存储过程 。如tb2u.sql生成存储过程tb2,则命令行如下:aproc tb2 tb2u 。SQL文件是生成存储过程的*.sql文件,文件名可以省略后缀“.sql”且固定存放在某一目录中 。其中的sqlcmdtxt结构来源于esql编译时产生的aproc.c中间文件,这也给我们一个启示,在C语言中间程序中有不少值得学习和研究的东西,当遇到用ESQL/C难以解决的问题时不妨看看C语言中间程序,或许会受到启发 。比如打开数据库的语句是:$datebase icbdb@acct_qz;
也可直接写成:_iqdbase("icbdb@acct_qz",0);,这就意味着当客户机程序要对多台服务器上的数据库进行操作时可以灵活地选择数据库名 。单机上的ESQL/C程序也可用下面语句打开数据库:$database icbdb@acct_qz;,这时使用的就是数据库名的第二种格式,当程序在客户机上运行时又成了第一种格式,此时acct_qz就不再是数据库服务器的名字(DBSERVERNAME)而是服务器的主机名 。源程序aproc.ec如下:#include
推荐阅读
- 上 HP 服务器安装 SCO UNIX 5.0.4/5
- 从服务器能够到达的所有网络设备里面提取设备配置信息
- 3 Informix-Online 7.30的安装及管理
- 1 Informix-Online 7.30的安装及管理
- 在 UNIX 中安装和配置开发 Web 服务器
- 6 Informix-Online 7.30的安装及管理
- SCO UNIX 系统下搭建电子邮件服务器
- PEX8XX系列服务器安装SCO 5.0.5详细手册
- Unix服务器共享Vista磁盘目录
- 分区技术 引领高端Unix服务器的未来
