TUXEDO超时控制全功略
2.9 WSL CLOPT [-N network_timeout]
2.9.1 参数出处
UBBCONFIG配置文件 -> SERVERS -> WSL -> CLOPT "-N"。
2.9.2 时间单位
秒。
2.9.3 取值范围
大于等于0。
2.9.4 默认取值
0 。
2.9.5 用途解释
网络超时,指Workstation client利用网络接收数据(receive data)的等待时间。
我们同样需要分析触发Network Timeout的不同条件。
以Request/Reply方式中的tpcall为例,将成功发送请求的时长设置为T1,将请求处理的时长(含排队等待)设置为T2,将成功取得结果的时长设置为T3,那么在如下情况下,将触发Network Timeout,引起超时:
(1) tpcall()不在transaction中,flag为0,当 BLOCKTIME> T1+T2+T3 > NetworkTimeout时,触发此超时 ;
(2) tpcall() 在transaction中,flag为0,当TranactionTimeout> TI+T2+T3 > NetworkTimeout时,触发此超时 ;
(3) tpcall()不在transaction中,flag为TPNOBLOCK,只有当一次调用即成功完成T1阶段发送请求的任务后,当 BLOCKTIME> T2+T3 > NetworkTimeout时,触发此超时 ;
(4) tpcall()在transaction中,flag为TPNOBLOCK,只有当一次调用即成功完成T1阶段发送请求的任务后,当 TranactionTimeout> T2+T3 > NetworkTimeout时,触发此超时 ;
(5) tpcall()不在transaction中,flag为TPNOTIME,当 T1+T2+T3 > NetworkTimeout时,触发此超时 ;
(6) tpcall()在transaction中,flag为TPNOTIME,当 TranactionTimeout> TI+T2+T3 > NetworkTimeout时,触发此超时 ;
(7) tpcall在其他任何情况,NetworkTimeout都将不起作用。
(8) 同理,可以确定NetworkTimeout在tpacall和tpgetrply中起的作用。
2.9.6 超时后果
在上面描述的六种情况下, Client端操作失败,同时,client端断开与Server端已经建立的联接。Server端已经为此Client完成的操作和分配的资源不能立刻回滚和释放,Server端需要等待前面介绍过的Client_timeout时间后,再释放相关的资源。
2.9.7 设置考虑
此参数的设置目的,主要是从Client的角度进行考虑,防止在Server端意外失效的情况下,仍然消耗Client端的资源。
设置参数,必须避免小于BLOCKTIME或TransactionTimeout的情况,因为在这种情况下,会出现业务正常等待中,联接却中断的现象,这是一定要避免的。
同时,由于此超时触发的联接中断,并不能立刻释放Server端的资源,带来业务执行过程中的不确定性,因此,此参数要谨慎使用。
2.10 SVCTIMOUT
2.10.1 参数出处
UBBCONFIG配置文件 -> SERVICES -> SVCTIMEOUT 。
2.10.2 时间单位
秒
2.10.3 取值范围
大于等于0。
2.10.4 默认取值
0,表示无限时长 。
2.10.5 用途解释
服务处理时长(Service Processing Time),表示系统允许服务处理请求的时间长度。
此参数主要是维护Server端系统安全的角度,防止由于系统异常引起的失控服务占据系统资源,阻碍正常的后续业务请求。它起到了一个清道夫的作用,将不能有效提供服务的Services清除出系统,并依靠系统的其他机制,重新产生具有活力的Services。
2.10.6 超时后果
超时后,此Service所属的Server将被系统的SIGKILL信号清除;此操作不会影响与此Server相关的其他正在运行的副本Servers。
如果系统设置SERVERS->RESTART=Y,那么,被清除的Server将立刻自动重新启动。重新启动的次数受随后介绍的MAXGEN和GRACE两个参数联合限制。
如果系统设置SERVERS->RCMD为有效命令文件,那么,在重启此Server时,将同时执���此命令,如向管理员发送通知邮件等。
如果SERVER没有RESTART=Y设置,那么Server将不会自动重新启动。
2.10.7 设置考虑
此参数不是系统全局参数,而是涉及到单个Service,可以根据不同的Service的处理时间进行设置。由于其主要起到系统清道夫的角色,因此,建议设置为正常Service处理时长的3倍较合适,以避免清除正常运行的Service,使正常运行的业务受到影响。
如果系统运行环境基本稳定,一旦出现底层网络或数据库系统故障,不是在短时间内能够恢复,建议将此参数增大,至少为平均恢复时间,甚至可以利用默认值0,无限等待,避免此自动机制,而用人工介入的方法进行服务恢复。因为系统自动的、频繁的SIGKILL将影响到整个TUXEDO系统的稳定。
2.11 GRACE
2.11.1 参数出处
UBBCONFIG配置文件 -> SERVERS -> GRACE 。
2.11.2 时间单位
秒。
2.11.3 取值范围
0-2147,483,647。
2.11.4 默认取值
86400(24小时)。
2.11.5 用途解释
此时间参数与其他两个参数紧密相关RESTART, MAXGEN。
关联起来解释就是,当Server异常终止时,如果RESTART=Y,那么此SERVER可立即自动重新启动,这个重新启动的次数被限制为在GRACE指定的时间间隔内,重启不超过MAXGEN-1 次。
如果RESTART这个参数为N,其他的相关参数将都无效。
2.11.6 超时后果
此参数不仅仅是时间的限制,如果在GRACE时间段内,此SERVER重启次数已经达到MAXGEN-1,后续重启将不能执行。
2.11.7 设置考虑
此组参数设置的综合目的是避免运行Server无限的重启,重启次数说明了系统目前异常状况的严重程度,如果在一定时间内,Server重启次数达到了一定的数量,说明这个Server相关的资源已经出现���严重的故障,需要人工进行干预了。
另外,经过调优的生产系统是不需要自动重启的,因此,RESTART这个参数更多是应用在系统测试版本中,在正常运行的生产系统中,应该有不同参数设置,谨慎使用,因为过多的重启将有可能严重影响Server端的整体稳定性。
2.12 Transaction TimeOut
2.12.1 参数出处
tpbegin(timeout,0)。
2.12.2 时间单位
秒,且必须为SCANUINT的倍数。
2.12.3 取值范围
大于等于0。
2.12.4 默认取值
无,使用时必须明确指定。
2.12.5 用途解释
交易时长,确定交易(transaction)的持续时间,如果超过此时间,系统将返回超时错误。
分析其触发条件,分两种情况:
(1) Server端发起交易,
对Client而言,因为Client不在交易范围内,即使BLOCKTIME设置小于此参数,起有效作用的仍然将是BLOCKTIME,而不是此参数。
(2) Client端发起交易。
对Client而言,因为Client在交易范围内,此时,BLOCKTIME将失效,此参数取而代之。只要处理时间超过此参数,将触发此超时,交易处理将随时中断。
2.12.6 超时后果
相关交易将被标识为abort only。注意,仅仅是标识为abort only,而不是系统自动执行tpabort进行交易恢复。随后必须主动执行tpabort,恢复交易,保障交易完整性。如果没有执行tpabort,系统将通过其他机制,恢复交易,保障交易完整性。
2.12.7 设置考虑
此参数的主要目的是将交易处理过程限制在合理的时间范围内,如果确实是完成交易的条件不具备,系统也能够作出反应,避免系统资源的长时间占用。因此,不管交易由Client还是由Server发起,此参数都要按照业务的实际状况进行设置。如果设置为0,就基本相当于��限时长。(系统unsigned long数据类型的最大值)
2.13 TRANTIME
2.13.1 参数出处
UBBCONFIG配置文件 -> SERVICES -> TRANTIME/AUTOTRAN。
2.13.2 时间单位
秒,且必须为SCANUNIT的倍数。
2.13.3 取值范围
0-2147,483,647。
2.13.4 默认取值
30 。
2.13.5 用途解释
此参数必须与AUTOTRAN配合使用,表示不需要调用tpbegin,就可自动发起的隐含交易(AUTOTRAN implicitly transactions)处理持续时长。其实,起到与tpbegin(timeout,0)中的timeout相同的作用。
其实,AUTOTRAN这个参数更为重要,其默认值为N, 其作用描述如下:
(1) 请求发起方不在交易模式,AUTOTRAN=Y,Service将自动发起一个交易,TRANTIME将起作用;
(2) 请求发起方在交易模式,而且,其中的标记参数(flags)不是TPNOTRAN,那么,无论AUTOTRAN如何,Service将自动加入请求方交易中,TRANTIME将不起作用;
(3) 请求发起方在交易模式,而且,其中的标记参数(flags)是TPNOTRAN,如果AUTOTRAN=N,Service将自动加入请求方交易中,TRANTIME将不起作用;
(4) 请求发起方在交易模式,而且,其中的标记参数(flags)是TPNOTRAN,如果AUTOTRAN=Y,Service将不加入请求方交易中,而是产生一个新的交易,TRANTIME将在新交易中起作用;
2.13.6 超时后果
与tpbegin(timeout,0)中的timeout相同。
2.13.7 设置考虑
与tpbegin(timeout,0)中的timeout相同。