[转帖]Tuxedo 超时控制(二)_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4341 | 回复: 0   主题: [转帖]Tuxedo 超时控制(二)        下一篇 
zhou
注册用户
等级:中校
经验:2210
发帖:125
精华:6
注册:2012-11-19
状态:离线
发送短消息息给zhou 加好友    发送短消息息给zhou 发消息
发表于: IP:您无权察看 2012-11-30 11:02:30 | [全部帖] [楼主帖] 楼主

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相同。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论