如何配置Tuxedo ubbconfig——超时

 

 

LDBAL参数特性】

·         当在RESOURCES小节中将LDBAL参数设为Y时,负载均衡被激活

·         负载因子被添加到服务器的总负载上

·         负载是相对于其他服务的

 

1.1      通过服务优先级控制数据流向

 

通过PRIO参数可以为服务设置优先级,从而可以控制对应用中的数据流向施加很大的影响。例如,服务1提供ABC三个服务。服务AB的优先级为50,服务C的优先级是70。对服务C的请求总是比对服务AB的请求先出队列,对服务AB的请求出队列的机会均等。系统以FIFO顺序从队列中取出每第十个请求,以防止一个消息在队列中无限等待。

注意: 也可以通过tpsprio()调用动态改变优先级。

 

PRIO参数特性】

·         该参数绝顶服务在服务器队列上的优先级

·         优先级最高最先被处理

·         每第十个请求通过FIFO顺序被从队列中取出

 

1.2      为不同的服务组指定不同的服务参数

 

可以为不同的服务器组指定不同的负载、优先级或其他有关服务的参数。要做到这点,必须用不同的SRVGRP参数值为每个服务器组重复服务入口项。请参见下面的例子:

 

SERVICES小节示例】

SERVICES

A  SRVGRP=GRP1 PRIO=50 LOAD=60

A  SRVGRP=GRP2  PRIO=70 LOAD=30

 

上面的示例为两个不同的服务器组指定了不同的服务参数。服务A被给予值为50的优先级,并在服务器组GRP1中有值为60的负载;在服务器组GRP2中,服务A的优先级是70,负载为30

 

1.3      为一个服务指定允许使用的缓冲区列表

通过BUFTYPE参数,你可以使得一个服务不依赖服务代码来检查缓冲区类型。在设置这个参数后,它指定一个允许此服务使用的缓冲区的列表。参数的格式是用冒号分隔的缓冲区类型列表:类型[:子类型[,子类型]]。子类型可以被设置为*,以允许所有子类型。

可以将一个服务的BUFTYPE设置为ALL,表示该服务接受所有的缓冲区类型。如果本参数没有被指定,缺省值是ALL

 

BUFTYPE参数示例】

 

 

1.4      服务超时错误

 

有时一个意外的系统错误会使正在处理请求的服务停滞或脱离控制,虽然需要终止这些服务所在的进程,但是却很难发现它们或其来源。BEA TUXEDO的一种机制基于这些进程中一个服务处理请求所用的时间来终止它们。

通过在UBBCONFIG文件中定义SVCTIMEOUT参数或动态改变TM_MIB中的TA_SVCTIMEOUT属性可以配置时间限制。在缺省情况下,BEA TUXEDO系统不会终止任何服务进程,所以必须设置SVCTIMEOUT参数值(以秒为单位)来激活这个特性。建议将SVCTIMEOUTTA_SVCTIMEOUT值最少设为应用中处理请求耗时最长的服务所需时间的两到三倍。用这种方式设置服务超时保证BEA TUXEDO系统只终止停滞的进程。实质上,服务超时就象是停滞或脱离控制的应用服务器的清道夫。

本部分描述服务超时错误的起因和后果,并解释BEA TUXEDO系统如何报告错误。此外还给出如果处理错误的建议。

 

1.4.1        导致服务超时的情况

在下面几种情况下会发生服务超时:

·         通常当一个未知或意外的系统错误使服务器进程停滞,或应用代码导致无限循环或递归时,会由于SVCTIMEOUT导致服务超时;

·         服务器进程异常推出并且卸出核心映像(dumps core),通常是是因为应用编码错误;

·         tpreturntpforwardTPRETURNTPFORWARD传递了错误的参数(应用编码错误);

·         调用tpreturntpforward TPRETURNTPFORWARD时有未完成(outstanding)应答(应用编码错误)[王烜1] 

·         在调用tpreturntpforwardTPRETURNTPFORWARD时有打开的从属连接(系统编码错误);

·         调用者的事务被标志为"abort-only"

 

1.4.2        超时发生的后果

 

当超时发生时,BEA TUXEDO系统终止运行停滞了的服务的服务器进程(但不是其子进程,如果有的话)。接着系统返回一个TPESVCERR错误,表示在处理中发生了一个未知问题。在会话式服务中,返回TPEV_SVCERR会话事件。

 

1.4.3        如何报告服务超时

BEA TUXEDO Release 6.4之前,当服务超时发生时,只返回错误码TPESVCERR。但是在Release 6.4加入了三个新的服务超时报告内容:

·         TPED_SVCTIMEOUT
超时错误细节,比tpstrerror 提供更多的信息;

·         .SysServiceTimeout
一个系统事件;

·         ULOG中有关.SysServiceTimeout的信息。

 

由于SVCTIMEOUT的值是可配置的,因此对客户端来说,很重要的一点就是能够简便地识别出可能由于超过SVCTIMEOUT值而引起的TPESVCERR错误与其他情况引起的TPESVCERR错误。虽然在ULOG中包含了这个信息,但是对客户程序来说从文件中提取这些信息很困难。为了区分服务超时导致的TPESVCERR和其他情况导致的TPESVCERR,在检测到TPESVCERR后调用tperrordetail(),如果有服务超时发生,该调用就会产生TPED_SVCTIMEOUT

此外,在服务超时发生时,还会生成一个.SysServiceTimeout系统事件。当.SysServiceTimeout事件发生时,在ULOG文件中有如下的反映:

ERROR: .SysServiceTimeout: %TA_SERVERNAME, group %TA_SRVGRP, id %TA_SRVID server killed due to a service timeout

 

1.4.4        如何控制服务超时

 

·         应用管理员可以通过改变UBBCONFIG文件SERVICES小节的SVCTOMEOUT参数的值,或TM_MIBT_SERVERT_SERVICE类的TA_SVCTIMEOUT属性,来控制服务超时。此外,应用管理员还可以通过ULOG文件监测服务超时的发生情况。

·         除了通过ULOG文件监测服务超时的发生情况外,应用管理员可以订阅.SysServiceTimeout事件,这个事件将在服务超时发生时警告应用管理员。

·         应用编程人员可以使用tperrordetialtpstrerrordetail编程接口,以及TPED_SVCTIMEOUT错误细节码。他们可以增加一个或多个对.SysServiceTimeout系统事件的订阅,该事件在服务超时错误发生时产生。

 


              配置路由(Routing

 

UBBCONFIG文件的ROUTING小节允许对在SERVICES小节中命名的路由标准(routing criteria进行全面的定义(针对BEA TUXEDO数据依赖性路由)。

2.1      ROUTING小节中定义路由标准

下面的表格中说明了ROUTING小节入口项所需的信息:

 

参数

特性

criterion_name

标准的名称。这是一个字符串值,其最大长度为15个字符

对于BEA TUXEDO数据依赖性路由(data-dependent routing),本参数是你在SERIVICES小节中用ROUTING参数指定的路由标准名称

FIELD

缓冲区域(Buffer field)的名称,路由在其上完成

对于BEA TUXEDO数据依赖性路由,这个参数是一个FML域的名称(针对FML缓冲区)或一个VIEW结构成员名称(针对VIEW缓冲区)本参数是被用来路由消息的实际域,它可以是任何数据类型。

FIELDTYPE

指明路由域的类型,支持的域类型有:

SHORT -215 . . . 215 - 1 (16 )
LONG -231 . . . 231 - 1 (32
)
FLOAT IEEE
单精度浮点数
DOUBLE IEEE
双精度数
CHAR 8
位单个字符
STRING null
结尾的字符串

RANGES

为每个标准赋予的限制,格式为:RANGES="[val1[-val2]:group1] [,val3[-val4]:group2]...[,*:groupn]"

val1 是一个值;val1-val2 表示一个范围;groupn I是一个组名或通配符(*)代表所有组名。val可以是数字、单引号包含的字符串、MIN或者MAX。在范围中出现的通配符表示Catch-All,也就是说,范围的数字没有限制[王烜2] 

BUFTYPE

表示对于BEA TUXEDO数据依赖性路由所允许的缓冲区类型。

本参数和在SERVICES小节中的同名参数非常相似,它为路由标准限制一套缓冲区类型和子类型。只有FMLVIEW类型可被用于路由。参数的格式也和SERVICES小节中相同,是一个冒号分隔的列表即类型:子类型[,子类型]。只能为路由标准指定一种类型,这个规则限制了能在路由服务中使用的缓冲区类型。

 

2.2      ROUTING小节中指定范围标准(Range Criteria

 

RANGES参数提供了域值和组名之间的映射,其格式如下:

RANGES="[val1[-val2]:group1] [,val3[-val4]:group2]...[,*:groupn]"

其中val1val2等是是该域的值,而groupn可能是一个组名,也可能是一个通配符(*)表示所有组名都可能被选中。在Val末尾的*字符是一个Catch-All选项,也就是说,它指明当数据不再前面指定的任何范围时该如何处理。val1可能是个数字,也可能是由单引号包括的字符串,取决于该域的类型:当域是数字时,val1为数字;当域为STRINGCARRAY时,val1为字符串。如果域的取值为MINMAX(没有引号),则表示允许机器最大和最小数据值(machine minimum and maximum。指定的范围书目没有限制,但是所有的路由信息都存储在共享内存中,因此回带来内存开销。

注意:范围重叠是允许的,但是重叠部分的数值将被映射到第一个组。例如,如果RANGES参数指定为:

RANGES="0-5:Group1,3-5:Group2"

则值为4的范围值将被路由到 Group1


              配置网络信息

可以在UBBCONFIG文件的NETGROUPSNETWORK小节配置网络组(network groups)。

3.1      NETGROUPS小节中指定信息

UBBCONFIG文件的NETGROUPS小节描述在在局域网环境下应用可用的网络组。对于网络组的个数没有限制,每个网络组可能被分配一对机器。一个网络组不同网络成员之间采用的通讯方法由优先级机制(NETPRIO决定。

每个LMID都必须是缺省网络组(DEFAULTNET)的成员,这个组的网络组号(即NETGRPNO)必须为零。不过可以更改DEFAULTNET的缺省优先级。

 

【指定NETGRPNONETPRIONETGROUPMAXNETGROUPSMAXPENDINGBYTES参数】

NETGRPNONETPRIONETGROUPMAXNETGROUPSMAXPENDINGBYTES参数特性如下:

参数

必需/可选

描述

NETGRPNO = numeric_value

必需

本参数为一个唯一的网络组号,必须设置此值,以在failoverfailback情况下使用。如果本入口项描述的是DEFAULTNET,则数值必须为零。

NETPRIO = numeric_value

可选

本网络组的优先级。在多个具有相同优先级的网络组中的一对机器同时在优先级最高的电路(circuits)上通讯。如果某优先级的所有电路被管理员或其他网络情况断开,则下一个级别较低的电路将被使用,同时尝试更高的电路。

本参数指必须大于零小于8192。如果没有指定,其缺省值为100

NETGROUP = string_value

必需

与本网络入口项有关的网络组。

所有NETGROUP参数设为DEFAULTNET的网络入口项都被T_MACHINE类代表,而与任何其他NETGROUP有关的NETWORK入口项都被T_NETMAP类代表,以便与以前版本互操作。

MAXNETGROUPS

可选

允许定义超过缺省值8的更多网络组。

MAXPENDINGBYTES

可选

MAXPENDINGBYTES用来配置等待网络可用的数据大小的最大值。在两种情况下MAXPENDINGBYTES有意义

·         BRIDGE请求一个异步连接

·         当所有的电路都忙碌时

可以为有更多内存和磁盘空间的计算机配置较大的,而为较小的计算机配置较小的MAXPENDINGBYTES

3.2      网络组配置示例

 

可以将网络地址和一个网络组相联系。下面的示例演示这种特性的用途:

某银行有一个含有五台机器(A-E)的网络,每个机器属于两到三个如下定义的网络组:

·         DEFAULTNET(缺省网络,是银行的广域网

·         MAGENTA_GROUP(一个局域网

·         BLUE_GROUP(一个局域网

·         GREEN_GROUP(一个私有局域网,提供机器间高速、光纤、点对点连接)

 

BLUE_GROUP

 

      D        E

C

A          B

MAGENTA_GROUP

每个机器都属于DEFAULTNET(银行广域网)。此外,每个机器还属于MAGENTA_GROUPBLUE_GROUP。而且MAGENTA_GROUP局域网中的某些机器还属于私有的GREEN_GROUP。下图说明机器 AE在其中有网络地址的网络。

GREEN_GROUP

CORPORATE_GROUP


 

 

 


下面的表格说明哪个机器在哪个组中有地址:

 

机器

在这些组中有地址

A B

DEFAULTNET(银行WAN

MAGENTA_GROUPLAN

GREEN_GROUPLAN

C

DEFAULTNET(银行WAN

MAGENTA_GROUPLAN

D E

DEFAULTNET(银行WAN

BLUE_GROUPLAN

 

注意:由于局域网在各位置之间不被路由,所以机器D(在BLUE_GROUP局域网)和机器A(在GREEN_GROUP局域网)只能利用它们共同具有的地址――银行广域网进行通讯。

 

3.3      配置有网络组的UBBCONFIG文件

为了建立上面所述的配置,该银行的系统管理员在UBBCONFIG文件的NETGROUPS小节定义了各个组,如下所示:

 


NETGROUPS

 

DEFAULTNET           NETGRPNO = 0    NETPRIO = 100   #缺省

BLUE_GROUP           NETGRPNO = 9    NETPRIO = 100

MAGENTA_GROUP        NETGRPNO = 125  NETPRIO = 200

GREEN_GROUP          NETGRPNO = 13   NETPRIO = 200

 

NETWORK

 

A    NETGROUP=DEFAULTNET             NADDR="//A_CORPORATE:5723"

A    NETGROUP=MAGENTA_GROUP          NADDR="//A_MAGENTA:5724"

A    NETGROUP=GREEN_GROUP            NADDR="//A_GREEN:5725"

 

 

B    NETGROUP=DEFAULTNET             NADDR="//B_CORPORATE:5723"

B    NETGROUP=MAGENTA_GROUP          NADDR="//B_MAGENTA:5724"       

B    NETGROUP=GREEN_GROUP            NADDR="//B_GREEN:5725"

 

 

C    NETGROUP=DEFAULTNET             NADDR="//C_CORPORATE:5723"

C    NETGROUP=MAGENTA_GROUP          NADDR="//C_MAGENTA:5724"

 

D    NETGROUP=DEFAULTNET             NADDR="//D_CORPORATE:5723"

D    NETGROUP=BLUE_GROUP             NADDR="//D_BLUE:5726"

 

E       NETGROUP=DEFAULTNET      NADDR="//E_CORPORATE:5723"

E    NETGROUP=BLUE_GROUP             NADDR="//E_BLUE:5726"

转自:http://blog.chinaunix.net/u2/84425/showart_2034399.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值