Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1756136
  • 博文数量: 600
  • 博客积分: 10581
  • 博客等级: 上将
  • 技术积分: 6205
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-06 10:13
文章分类
文章存档

2016年(2)

2015年(9)

2014年(8)

2013年(5)

2012年(8)

2011年(36)

2010年(34)

2009年(451)

2008年(47)

分类:

2009-08-22 13:25:08

SERVERS小节】

下面给出一个配置文件中SERVERS小节的示例:

SERVERS

DEFAULT:          RESTART=Y MAXGEN=5 GRACE=3600

                  REPLYQ=N CLOPT="-A"

                  ENVFILE="/usr/home/envfile"

                  SYSTEM_ACCESS=PROTECTED

 

RINGUP1           SRVGRP=GROUP1 SRVID=1 MIN=3

                  RQADDR="ring1"

RINGUP2           SRVGRP=GROUP1 SRVID=4 MIN =3

                   RQADDR="ring2"

 

注意:上例中忽略了SEQUENCE服务启动顺序是16),REPLYQRPPERM服务器不接收应答),RCMD(重新启动时无特殊命令),以及CONV(服务器不是会话方式)参数。除非在某个服务器中专门设定,否则缺省值(在DEFAULT段中设置)将被应用到所有的服务器上。

 

首先在SERVERS小节的入口项中定义服务器名,这个名称是用buildserver创建的可执行文件名。必须为每个服务器提供一个组标识(SRVGRP),这是一个在GROUPS小节中指定的名称。此外,还应改为某个给定组中的每个服务器进程提供一个唯一的数值标识(SRVID)。由于入口项描述的是要被启动的机器而不仅仅是应用,因此有可能同一个服务器名称会出现在多个入口项中。

 

【服务名、SRVGRPSRVID参数的特性】

buildserver创建

服务名是必需的,但是不必唯一

(服务器组

组名称以一个在GROUPS小节中的入口项开始

这个参数是必需的

服务器ID

本参数是必需的,而且在同一个服务器组内应唯一

服务器有可能需要从命令行获取信息。CLOPT参数允许你指明可以改变服务器缺省运行方式的命令行选项,或者给tpsvrinit()函数传递用户定义的选项。

服务器的标准main()将命令行选项用参数“--”分成两部分,将剩余的选项部分传递给tpsvrinit()CLOPT的缺省值是A,它告诉服务器将buildserver创建到自己内部的所有服务都发布出去。下面的表格列出部分其他可用选项:

文件名

文件名

服务名列表

发布服务名列表指定的服务

,y,z

示例:发布x,yz三个服务

funcname

示例:发布x,yz三个服务,但是只处理含有函数funcname的服务。这被称为函数名别名(aliasing a function name

 

 

【服务器命令行选项】

·         格式为CLOPT="servopts -- application_opts"

·         本参数为可选参数,缺省值为-A

·         main()tpsvrinit()都使用服务器命令行选项

·         servopts选项传递给main()

·         application options被传递给tpsvrinit()

 

你可以通过SEQUENCE参数指定服务器启动的顺序,该参数指定一个范围在110000之间的数值。被指定较小SEQUENCE数值的服务器比被指定较大SEQUENCE数值的服务器先启动。如果所有的服务器都没有被指定SEQUENCE数值,则服务器以它们在SERVERS小节中出现的先后顺序启动。如果部分服务器被指定了顺序值,部分没有被指定,则指定了SEQUENCE值的服务器先被启动。服务器关闭时的顺序和其启动时相反。

SEQUENCE参数是可选的,在大型的应用中,控制服务器的启动顺序相当重要,此时本参数的使用就非常有益。

使用MIN参数可以启动一个服务器的多个实例,这些实例共享同样的服务器选项。如果指定了RQADDR参数,这些实例将形成一个MSSQ集。MIN的缺省值是1

通过MAX参数指定一个服务器可以被启动的最大实例数。tmboot命令在运行时启动MIN个服务器实例,如果需要,还可以再启动另外的实例,直到实例总数达到MAX个。MAX的缺省值等于 MIN.

 

SEQUENCEMINMAX参数特性】

取值小的服务器先于取值大的服务器启动

没有指定SEQUENCE值的服务器以它们在SERVERS小节中出现的先后顺序启动

指定SEQUENCE值的服务器先于未指定该值的服务器启动

该参数代表一个服务器在运行时启动的最小实例数

如果指定RQADDR参数并且MIN>1将建立起一个MSSQ

所有的实例有同样的服务器选项

MIN的取值范围是0-1000

缺省值是1

取值范围是0-1000。如果没有指定MAX,其缺省值等于MIN

MACHINES小节中使用ENVFILE参数可以指定环境设置,同样可以为某个服务器进程指定这个参数,其含义相同。如果在MACHINESSERVERS小节中都指定了ENVFILE参数,它们将同时起作用。如果两个文件中相同的变量被定义,则在SERVERS小节中设定的变量将起作用。ENVFILE参数是可选的。

服务器队列信息控制着服务器消息队列的创建和访问。在BEA TUXEDO系统中,可以通过RQADDR参数创建多服务器单队列集(MSSQ set),对于一个服务器,可以赋予一个字母数字值做为此参数的值。提供同样服务的服务器可以让它们的服务共享一个消息队列,从而提供自动负载均衡。通过为MSSQ集中的所有成员指定同样的RQADDR可以做到这点。

 

MSSQ示例】

MSSQ集和银行的情况很相似。如果有四个柜员,可以只排一个队,每个柜员在队列中都有均等的等候人。可以理解的是,贷款柜员肯定不包含在这四个柜员中,因为有些顾客并不想在某个给定日期贷款。同样,如果参与其中的服务器提供不同的服务,MSSQ集也是不允许建立的。

通过RQPERM参数可以用UNIX系统惯例指定服务器请求队列的权限(如0666)。这使得服务能够控制对请求队列的访问。

如果MSSQ服务器中的服务例程执行服务请求,这些服务必须在一个应答队列上接收对它们的请求的应答。这一点是通过指定REPLYQ=Y来实现的。在缺省情况下,REPLYQ被设置为N。如果REPLYQ被设置为Y,还可以通过RPERM参数为它设置权限。

RQADDRRQPERMREPLYQRPPERM参数特性】

特性

该值对一个MSSQ集中的所有成员相同

一个MSSQ集中的所有服务器成员必须提供同样的服务

权限将被使用。如果没有赋值,缺省值0666将被使用,这个缺省值使得应用可以被任何登录系统的用户使用[王烜1] 

指定是否为本服务器建立一个独立于请求队列的应答队列。如果只有一个服务器使用请求队列,应答可以被从请求队列中挑选出来而不会导致问题。在BEA TUXEDO系统上,如果一个服务器是MSSQ集中的成员并且含有接收应答消息的服务,REPLYQ参数应该被设为Y,以便为此服务器创建独立的应答队列。如果没有创建应答队列,应答将被发送到被所有MSSQ集中所有服务器共享的请求队列中,没有任何方法保证这个应答能被等待它的服务器取出

设置应答队列权限。只有当REPLYQ=Y时本参数才有用。如果请求和应答读取同一个队列,则只需要设置RQPERM参数,RPPERM将被忽略

一个通过正确调试的服务器不应当自己终止运行。在缺省情况下,在应用启动时终止的服务器不会被BEA TUXEDO系统重新启动。如果你希望该服务器重新启动,可以将RESTART参数设置为Y。当RESTART=Y时,RCMDMAXGENGRACE参数都和一个服务器有关。

RCMD指定一个在服务器重新启动时并行执行的命令,这个命令必须是一个可执行文件。这个选项使得管理员在服务器被重新启动时可以采取一些措施,比如可以给服务器的开发者发送邮件。

MAXGEN参数标识一个服务器在GRACE参数指定的时间周期内总共有多少条“命”,因而在GRACE秒内,服务器最多只能被重启动MAXGEN1次。如果GRACE被设置为零,则服务器的重新启动次数就没有限制。MAXGEN缺省值为1,且不能大于256GRACE必须大于等于零且不能超过2,147,483,647231-1)。

 

RESTARTRCMDMAXGENGRACE参数特性】

缺省值是N

允许你在某个服务器重新启动时采取某种措施

缺省值为1;最大值为256

设置为0表示服务器可以被无限次启动

参数取值在02147,483,647 (231 - 1)之间

缺省值为24小时

如果一个服务器是会话服务器(即此服务器和一个客户端建立一个连接),则必须将此服务器的CONV参数设置为Y。该参数的缺省值为N,表示该服务器不会成为会话的一方。

 

CONV参数的特性】

·         取值Y表名服务器是会话型的,取值N表示服务器不是会话型的

·         如果服务器要接收会话请求,必须将CONV参数设为Y

·         缺省值为N

SYSTEM_ACCESS参数绝顶服务器进程是否可以连接到共享内存,从而可以在系统模式之外访问内部表。在应用开发期间,建议禁止这种访问(将参数值设为PROTECTED,在应用进行了全面的测试后,可以将参数值改为FASTPATH以获得更佳性能。

如果在RESOURCES小节中没有指定NO_OVERRIDE参数,SYSTEM_ACCESS将重载在RESOURCES小节中指定的同名参数;在本小节不允许使用NO_OVERRIDE值。

 

SYSTEM_ACCESS参数特性】

·         取值PROTECTED表示服务器不能在系统模式之外不能连接到共享内存

·         取值FASTPATH表示服务器无论何时都将连接到共享内存

·         如果在RESOURCES小节指定了NO_OVERRIDE参数,本参数将被忽略

·         缺省值是RESOURCE小节的取值


小节指定BEA TUXEDO服务

通过配置文件中的SERVICES小节可以指定BEA TUXEDO服务的信息。这些信息对于无事务、非分布式应用相对简单。SERVICES小节包含下面一些信息:

·         负载均衡信息(SRVGRP

·         给服务赋予优先级

·         为不同的服务器组指定不同的服务参数

·         缓冲区类型检查信息(BUFTYPE

SERVICES小节示例】

下面给出一个配置文件中SERVICES小节的示例:

SERVICES

#

DEFAULT:  LOAD=50 PRIO=50

RINGUP    BUFTYPE="VIEW:ringup"

 

在上面的例子中,一个服务的缺省负载和优先级都是50;唯一声明的服务是一个 RINGUP服务,该服务接收一个ringup VIEW做为其所需的缓冲区类型

 

如果在RESOURCES小节中指定LDBAL参数的值为Y,就会发生服务器负载均衡。每个被执行的服务都被赋予一个负载因子,该因子追踪每个服务器执行服务的总负载。每个服务请求都被路由到总负载最小的服务器上,这个请求路由使得该服务器的总负载增加,增加的值等于被请求的服务的负载因子大小。

负载信息只存储在发起服务请求的机器上。在一个分布式应用中,如果BEA TUXEDO系统试图不断地将负载信息传播到所有机器,将是非常低效的。当在这样的应用中执行负载均衡时,每个机器只知道自己引起的负载并据此进行负载均衡,着意味着对于同一个服务器(或队列),不同的机器会有不同的负载统计,不同机器上最不繁忙的服务器都不同。

如果没有激活负载均衡,并且有多个服务器提供同样的服务,则第一个可用的队列接收服务请求。


 [王烜1]未最后确定

阅读(1193) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~