最近我开发了一套系统运行在tuxedo10 上面,基本的架构是各个柜员客户端软件通过socket连接到应用服务器的socket server上(各种socket server共有4个),客户端转发服务请求包给socket server程序,然后socket server程序以迭代方式(不派生子进程,因为处理时间很短,我设置socket 最多允许100个消息进行排队)逐个处理。 socket server其实是Tuxedo的客户端,用buildclient 构建的,它把从客户端那里接受来的请求进行包装,然后调用TPCALL调用同在一台机器上的Tuxedo服务器上的各个服务,Tuxedo server再去连接数据库,进行各种记帐处理,总体架构就是这样。
    总体来说运行很稳定,速度也很快,但是大约每隔10万笔交易就会引发一次Tuxedo的错误,日志如下:
 071450.testsvr!?proc.21840.3086219472.0: LIBTUX_CAT:1122: ERROR: No space in Bulletin Board
071450.testsvr!?proc.21840.3086219472.0: LIBTUX_CAT:582: ERROR: Unable to register, registry table full
   我Tuxedo的配置文件如下:
 *RESOURCES
IPCKEY          123456
DOMAINID        appserv
MASTER          test1
MAXACCESSERS    30
MAXSERVERS      20
MAXSERVICES     30
MODEL           SHM
LDBAL           N
*MACHINES
DEFAULT:
APPDIR="/bea/tux10/server"
TUXCONFIG="/bea/tux10/server/tuxconfig"
TUXDIR="/bea/tux10"
testsvr         LMID=test1
MAXWSCLIENTS=20
*GROUPS
GROUP1
LMID=test1     GRPNO=1 OPENINFO=NONE
GROUP2
LMID=test1     GRPNO=2 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
WSL                   SRVGRP=GROUP1 SRVID=1 CLOPT="-A -- -n //10.2.3.12:7777 -m 2 -M 2 -x 5"
getdate               SRVGRP=GROUP2 SRVID=1 MIN=1 MAX=1
sendmsg               SRVGRP=GROUP2 SRVID=2 MIN=1 MAX=1
sna_ses               SRVGRP=GROUP2 SRVID=3 MIN=1 MAX=1
checkfs               SRVGRP=GROUP2 SRVID=4 MIN=1 MAX=1
pgspace               SRVGRP=GROUP2 SRVID=5 MIN=1 MAX=1
*SERVICES
GETDATE         LOAD=1
SENDMSG         LOAD=1
SNA_SES         LOAD=1
CHECKFS         LOAD=1
PGSPACE         LOAD=1
    其实Tuxedo的客户端仅仅是4个以迭代方式运行的socket server,Tuxedo service 也就这么5个,每个service一个server,加上两个其实目前还没用到的WSL server,加上UBBL,总共访问Tuxedo的不过12个server,资源应该够用吧。
     请指点一下,非常感谢!!
--友情转载