tuxedo中关于超时的参数较多,现收集整理了下相关文档与大家分享
SCANUNIT
BBL 系统进程对BulletinBoard的管理和监控是基于时间片的轮询方式,时间片的大小就是SCANUNIT的值,SCANUNIT是Tuxedo对系统进行管理的最基本时间单位,其他许多时间方面的参数均是SCANUNIT的倍数。每隔SCANUNIT,BBL对BulletinBoard进行一次检查,看看有无超时的事务或服务请求。SCANUNIT必须是大于0的5的倍数,最大是60,缺省10,单位为秒。
BLOCKTIME
服务请求的超时值,BBL发现有超时的Request时,会给相应的Client端发信息,Client端如果在调用时未加TPNOTIME标记,会报错返回,tperrno值为13。由于BLOCKTIME是以SCANUNIT为单位的,所以时间的绝对值为(BLOCKTIME *SCANUNIT),BLOCKTIME缺省为(60/SCANUNIT)。
SANITYSCAN
健全性检查扫描,健 全性检查主要检查Server进程状态和Bulletin Board数据结构,BBL检查Server进程是否存活,如果已经不存在,会清理BulletinBoard中相应的数据项及IPC资源,并根据参数配置决定是否重新启动,如果设了RESTART=Y,所占的MessageQueue不会被清,Queue中的Request得到保留,仍会被处理。如果是MP模式,BBL还会给DBBL发状态消息。
SANITYSCAN缺省为(120/SCANUNIT)。
BBLQUERY
BBL 检查,在MP模式下,DBBL会每隔一段时间检查是否所有的BBL都发了" I am ok"心跳信息给自己,如果没有收到某个BBL的信息,它会发Request给那个BBL,如果等了DBBLWAIT后仍然没有回复,DBBL会认为那台机器有问题,将其partition。BBLQUERY缺省为(300/SCANUNIT),DBBLWAIT缺省为(20/SCANUNIT)。BBLQUERY必须大于等于SANITYSCAN,tmloadcf 时会强制检查,如果设的值小于SANITYSCAN,tmloadcf会自动调整为SANITYSCAN。
其它和时间相关的参数还有:
WSL [-I init-timeout]
WorkStation Client和后台建立连接的超时参数值,缺省60秒
WSL [-T Client-timeout]
WorkStation Client和WSH建立连接后,如果在指定的时间内没有信息交互,WSH会自动释放和这个Client端的连接,并将此Client在Bulletin Board中的数据项请空,RollBack它未完成的事务 。
WSL [-N network-timeout]
此值实际上是WorkStation Client在做receive时的超时值,如果发生超时,此操作会出错,WorkStation Client会断开和后台的连接。
SERVICES中的SVCTIMEOUT
如果SERVICE执行时间超过SVCTIMEOUT,BBL会自动将此Server进程Kill掉。
SERVICES中的TRANTIME
如果此SERVICE设置了AUTOTRAN=Y,则此值为事务超时值,超时后Transaction
Manager会自动RollBack此transaction。