分类:
2009-08-22 13:23:42
由于大部分IPC和共享内存公告牌表都是静态分配的,以加快处理速度,因此正确调谐它们的取值就很重要。如果它们过大,内存和IPC资源就会被耗尽;如果它们太小,则当有超过限额的资源需求时,进程就会失败。
下面这些有关IPC大小调整的调谐参数目前在RESOURCES小节中:
· MAXACCESSERS:
BEA TUXEDO系统中一个机器上所能允许运行的最大进程数。这并非所有进程的总和,而是等于拥有最多进程的机器上的进程数。该参数的缺省值是。(可以针对每个机器重载这个参数,只需在MACHINES小节中重新设置参数值即可)
· MAXSERVERS:
应用中最大服务器进程数,包括所有的管理服务器(如BBL和TMS)。它是所有机器上服务器进程的总和。缺省值为50。
· MAXSERVICES:
应用中可以发布的不同服务的最大值,它是系统中所有服务的总和。缺省值是100。(注意缺省值是为系统资源保留的数字)
增加MAXACCESSERS数值带来的开销是,每加一就要多消耗该机器上的一个信号灯。除了根据MAXACCESSERS增加的信号灯外,还有一小部分固定数目的信号灯用于系统进程。增加MAXSERVERS和MAXSERVICES参数的开销是需要为每个服务器、服务、客户段分别保留小部分共享内存。这些参数主要是为应用在未来的扩展准备的,其中对MAXACCESSERS参数要仔细设置。
注意:另外还有两个参数MAXGTT和MAXCONV也影响共享内存。
【MAXACCESSERS、MAXSERVERS和MAXSERVICES参数的特性】
参数 |
特性 |
|
可以在 MACHINES 小节中为每个机器重载这个参数。 开销是每个accesser要占用一个信号灯。 |
|
应用中最大服务器进程数(所有机器上的总和) 开销是一小部分共享内存。 |
|
开销是一小部分共享内存。 缺省值为100. |
你可以控制是否在一个BEA TUXEDO系统上整体使用负载均衡算法。使用负载均衡时,系统中的每个服务都会被赋予一个负载因子,你可以跟踪每个服务器的总负载,而每个服务请求都将被送到负载最轻的合格服务器上。
这种算法虽然有效,但是开销很大,因此只应在需要时使用。只有当服务是由使用多个队列的服务器提供的情况下才需要负载均衡。当服务是被单个服务器提供,或被位于MSSQ(multiple server single queue:多服务器单队列)中的服务器提供时,不需要使用负载均衡。此时,其LDBAL 参数应该被设为N;其他情况下,你可以将LDBAL设置为Y。
如果LDBAL被设置为N,并且多个队列提供同样的服务,第一个可用的队列将被选中。
如果LDBAL被设置为Y,并且应用是网络化的,则TMNETLOAD环境变量可被用于为本地机器提供优先级。
【LDBAL参数特性】
· 如果LDBAL被设置为Y,指定的服务器将进行负载均衡。
· 如果LDBAL被设置为Y,你可以用TMNETLOAD环境变量来实现本地优先。
· 如果LDBAL被设置为N,指定的服务器将成为第一个可用服务器。
· 缺省值是N。
· 因为LDBAL增加额外开销,因此只在需要时才应使用它。
· 当所有服务都是被单个服务器提供时,不要使用负载均衡。
· 如果所有服务都是被一个MSSQ服务器集(MSSQ server set)提供时,不要使用负载均衡。
可以通过MAXBUFTYPE和MAXBUFSTYPE参数来分别控制应用中允许的缓冲区类型和子类型数目。当前MAXBUFTYPE的缺省值是16。除非你创建了很多自定义的缓冲区类型,否则你可以忽略MAXBUFTYPE参数。但是如果你准备使用很多不同的VIEW子类型,可能需要调整MAXBUFSTYPE参数,使它超过其当前缺省值32。
【MAXBUFTYPE和MAXBUFSTYPES参数特性】
|
|
|
系统中允许的最大缓冲区类型数。 仅在创建了8个以上自定义缓冲区类型时使用。 缺省值是16。 |
|
缺省值是32。 |
可以设置管理服务器(BBL)定期检查其本机上服务器健全性的次数。此外还可以设置阻塞中的消息、事务及其他系统活动的超时时间。
通过SCANUNIT参数可以设置这些检查和超时的数值,参数值(以秒为单位)是5的倍数,缺省值为10。
使用SANITYSCAN参数指定两次服务器健全检查之间的SCANUNIT数。SANITYSCAN*SCANUNIT 之积不能超过300.当前缺省值设置SANITYSCAN*SCANUNIT在120秒左右。
【示例:设置健全检查和超时值】
SCANUNIT参数值为10,BLOCKTIME参数值为3,允许客户应用有30秒的超时时间。BLOCKTIME参数缺省值设置为使BLOCKTIME * SCANUNIT之积大约为60秒。
BLOCKTIME的值为以下几个时间之和:
· 等候进入队列的时间
· 在队列中等待的时间
· 服务处理时间
· 网络传输时间
【SCANUNIT、SANITYSCAN和BLOCKTIME参数特性】
|
|
|
参数值必须为5秒的倍数; 如果没有设置,缺省值为10。 |
|
BBL检查服务器的频率(以SCANUNIT为间隔单位) SCANUNIT * SANITYSCAN不得超过300。 如果没有设置,缺省值使得SCANUNIT * SANITYSCAN大约为120秒。 |
|
SCANUNIT * BLOCKTIME不能超过32767; 如果没有设置,缺省值使得SCANUNIT * BLOCKTIME大约为60秒。 |
通过MAXCONV参数可以指定在一个机器上的最大会话数目;
【MAXCONV参数特性】
· 该参数指每个机器上最大并发会话数;
· 参数取值必须大于等于0且小于32,766;
· 对于在配置文件SERVERS小节中列有会话服务器的应用,参数的缺省值是10;否则,缺省值为1;
· 可以在MACHINES小节中覆盖此值;
可以设置如下三种安全级别:
· PERM参数:
设置写应用队列的一级(最低级别)权限;
· SECURITY参数:
设置二级权限,要求客户在加入应用时提供口令。当从UBBCONFIG文件生成TUXCONFIG文件时,这个口令将被和管理员提供的口令进行比较检查。
· AUTHSVC参数:
设置三级权限,将客户加入应用的请求提交给一个认证服务。本级权限要求二级权限被设置。认证服务可以是BEA TUXEDO系统提供的缺省服务,也可以是如Kerberos服务那样由其他开发商提供的服务。
【SECURITY和AUTHSVC参数特性】
|
|
。 例如:SECURITY APP_PW | |
|
认证服务的名称; 必须指定SECURITY APP_PW; 缺省为无任何认证服务。 可以用Kerberos服务认证客户端; 例如:AUTHSVC ‘’AUTHSVC’’ |
通过设置 NOTIFY 参数可以规定客户端接收主动消息的方法,但是客户端可以在调用tpinit()时在TPINIT结构中重载这个参数。
下面为可用的几种方法:
· IGNORE-客户端应该忽略主动消息;
· DIPIN-客户端只有在调用tpchkunsol()或产生ATMI调用时才接收主动消息;
[王烜1] -客户端通过使系统产生一个信号,并借助信号处理函数调用函数获取主动消息,即通过tpsetunsol()函数设置;
可以产生两种信号:SIGUSR1和SIGUSR2。通过设置USIGNAL参数可以选择使用哪种信号,缺省值是SIGUSR2。在选择通过信号收取主动通知的应用中,所有基于MS-DOS的客户端工作站都自动转换为DIPIN方式。
【NOTIFY和USIGNAL参数的特性】
|
|
|
表示客户端应该忽略主动消息; 取值DIPIN表示客户端应该通过dip-In接收主动消息; 取值SIGNAL表示客户段通过信号来接收主动消息; 缺省值是DIPIN。 例如:NOTIFY SIGNAL |
|
取值SIGUSR1表示通过此类信号来通知客户段; 取值SIGUSR1表示通过此类信号来通知客户段; 缺省值是SIGUSR2。 例如:USIGNAL SIGUSR1 |
可以通过SYSTEM_ACCESS参数来保护存放在共享内存中的系统表免受应用客户端或服务器的破坏。这个参数对于正在开发的应用很有用,因为不当的应用代码会在无意中使用错误的指针破坏共享内存。当应用已经全部调试和测试后,可以修改这个参数以获得更快的响应。下面是本参数的几个可用选项:
· PROTECTED:
和应用代码编译在一起的BEA TUXEDO库在执行系统代码时不连接到共享内存;
· FASTPATH:
BEA TUXEDO库任何时候都连接到共享内存;
· NO_OVERRIDE:
选中的选项不能被重载,无论是客户端在调用tpinit()时通过TPINIT结构,还是在配置文件中描述服务器的SERVERS小节中;
、FASTPATH和NO_OVERRIDE参数特性】
参数 |
特性 |
|
共享内存中的内部结构不会被应用进程无意破坏 |
(缺省值) |
|
|
|
[王烜1]未最后确定