1.unname -n 查看主机名称 在网络中设置。默认localhost.localdomain
2.tmboot -y 启动tuxedo application
3.BBL(Bulletin Board Liaison) 是tuxedo的一个管理服务进程,administrative process,在启动tuxedo时首先启动这个进程
3. 启动时,标准输出:exec simpserv - A -A参数表示把server中所有的service注册到BBL。在UBBCONFIG中表示:CLOPT=”-A“
4. psr/printserver命令:to get information about servers
psc/printservice命令:to get information about services
5. tuxedo 配置文件一共有八个节
*RESOURCES domain级别的。system-wide information 跨机器的。包含全局的参数。
三个必要参数:(1) IPCKEY 标识系统IPC资源,
值范围:32769~262142
(2) MASTER logical machine name(LMID) 多个计算机相连起管理作用的主机的名称(带有启动和关闭角色的主机)
(3) MODEL 模式,一个机器single(SHM) 或 集群multiple machine(MP)
其他参数
MAXACCESSERS 10 同时允许访问BB共享内存块数 1~32768
MAXSERVERS 5 最大的进程数 1~8192
MAXSERVICES 10 最大的服务数 1~32768
SCANUNIT BBL进程要周期的验证BB共享内存块中的内容,是否有损坏。此参数表示:扫描的基本单位,必须是5的倍数,单位是秒。
SANITYSCAN 真正的扫描时间,例如设置为3,那么实际饿扫描参数就为3*SCANUNIT 不可大于300秒
BLOCKTIME 设定超时时间,如发包的超时时间 如果为1 1*SCANUMIT 就是可实际超时的参数< 32767
*MACHINES 配置本机机器
LMID logical machine name
TUXCONFIG tuxconfig配置文件目录及名称
TUXDIR tuxedo根目录
APPDIR server程序目录
*GROUPS SERVERS的分组,便于管理
LMID
GRPNO 组ID
例如:
APP_GRP1 LMID=SITE1 GRPNO=2
*SERVERS
SRVGRP: SERVER所属组
SRVID: SERVER的id,不同组的SERVERID可以相同
CLOPT: Command Line Options Parameter,向server里传递参数(因为server没有Main函数)。CLOP = "<left>--<right>" left内容是提供给tuxedo来解析的。right用来供用户解析的。
-A 把所有services都注册到BB中。
-e file 把标准错误信息输出到文件
-o file把标准输出重定向到l文件中
-t 多线程的支持。还需要在CONFIG中SERVER配置MINDISPATCHTHREADS和MAXDISPATCHTHREADS 最小线程数和最大线程数
-P[L] Min-Max设置增减生效
L标记意味着增减服务进程基于负载而不是请求队列的长度,仅用于SHM模式并且LDBAL=Y,否则报错(LIBTUX_CAT:1542)
-r tuxedo有个性能工具txrpt,可以统计每个服务SERVICE在某段特定时间内所处理的请求的总数及平均处理时间。
txrpt [-t] [-n names] [-d mm/dd] [-s time] [-e time]
参数说明:
-t
对输出进行排序,总计处理请求所花的时间越多的排的越靠前.如果不指定,按总
计被调用的次数越多的排的越靠前.
-n names
只输出指定名称的SERVICE的统计信息,如果有多个,可用,隔开.
-d mm/dd
限定日期,统计指定日期的信息. 缺省为当前日期.
-s time
指定统计开始时间:格式为:hr[:min[:sec]].
-e time
指定统计结束时间:格式为:hr[:min[:sec]]
-s 服务。
还有很多,待查
出现错误时,重启参数:
RESTART=Y
GRACE=0 设置启动间隔,0为无限次启动,但是不推荐的。
MAXGEN=10 在规定的时间内最多多少条命,缺省时1,最大是256
RCMD 任何的可执行文件或脚本在重启这个服务时被执行。比如发个邮件的程序。发个短信的程序。
例如: meserver SRVGRP=site1 SRVID =10 MIN=5 MAX=20 (开始启动5个,CLOPT设置-p参数,就会自动扩展到20个)
*SERVICES 服务
----------------------------------单机系统以上5部分就够了
*ROUTING
*NETGROUPS
*NETWORK
6.UBBCONFIG中可以使用关键字 DEFAULT 参数定义一些缺省值。
7. buildserver -f 源文件 -o 可执行文件 -s services s1:s2 ( ”:”后为服务别名。)
8。查看环境变量
9JOLT
添加服务。报错getkeys ,是因为很多原因,比如BBL共享内存不足。允许访问的客户端限制少了。等。
java bea.jolt.admin.jbld //192.168.0.88:2140 services.rep
10 FML
mkfldhdr32 fml文件
1生成个头文件用于服务和客户端引用
2.添加fml文件名称及路径为环境变量
Ferror32
这个全局整型的变量是用来设置当FML32函数返回-1失败的时候的错误代码。
Fstrerror32(string)
这个函数是用来根据错误代码返回错误信息的。
使用tpalloc()来分配一个FML32缓冲区,(FML32 没有子类型)
FBFR32 *fml32_buffer;
tpalloc("FML32",NULL,"buffer_size_required);
第三个参数,缓冲区可以去评估一下,也可以用下面的函数
long Fneeded32(FLDOCCD32 F,FLDLEN32 V)
F: 要使用的域(字段)的个数
V: 所有域(字段)需要的大小,取大小可用sizeof()函数。
下面看一个分配Buffer Allocation的例子
#include<fml32.h>
...
long need;
long balance; //字段1
char acct[20];//字段2
fldlen = sizeof(long) + sizeof(acct);
need = Fneeded32(2,fldlen);
fbuf = (FBFR32 *) tpalloc("FML32",NULL,need);
if(fbuf == NULL){
.....}
....
int Fadd32(FBFR32 *fbfr,FLDID32 fieldid,char* value,FLDLEN32 len)
向缓冲区中添加字段。如果这个缓冲区的某个域已经存在数据,则按照从0开始递增的方式增加数据。
参数
fbfr 指向一个缓冲区的指针
fieldid 添加字段的ID
value char * 字符串(字段内容)
len FML32下设置为0
例子:
long acct_id;
char *name;
......
if(Fadd32(reqfb,ACCOUNT_ID,(char *)&acct_id,(FLDLEN32)0) == -1)
{
fprintf(stderr,"Fadd32 failed with error :%s/n",Fstrerror32(Ferror));
}
if(Fadd32(reqfb,SAMOUNT,name,(FLDLEN32)0) == -1)
{
printf("Fadd32 failed with error: %d/n",Ferror);
}
....
int Fget32(FBFR *fbfr, FLDID32 fieldid,int occ,char *value,FLDLEN32 *MaxLen);
参数:
fbfr 指向欲得到域值的缓冲区
fldid 从缓冲区去域值的ID
value 从缓冲区返回的数据。
maxlen 设置了从缓冲区拷出的最大字符数量。
occ
所在域中的位置标示,(从0开始排序)
例子:
FLDLEN32 len2;
char name[20];
long amount;
...
len2=sizeof(name);
if ((Fget32(buf32,NAME,0,name,&len2)) == -1)
{
....
}
len2= sizeof(amount);
if(( Fget32(buf32, AMOUNT,3,(char *)&amount,&len)) == -1)
{
...
}
int Fchg32(FBFR32 *fbfr, FLDID32 fieldid,FLDOCC32 occ,char* value,FLDLEN32)
改变域中的值
fbfr 指向欲得到域值的缓冲区
fldid 从缓冲区去域值的ID
value 从缓冲区返回的数据。
occ
maxlen 设置了从缓冲区拷出的最大字符数量。
occ 所在域中的位置标示,(从0开始排序)
FLDOCC32 Foccur32( FBFR32 *fbfr,FLDID32 fieldid);
得到域中值的总数量。
fbfr 缓冲区
fieldid 域Id
int Fprint32(FBFR32 *fbfr);
int Ffprintf32(FBFR32 *fbfr, FILE *iop);
用来格式化化输出缓冲区,主要用于调试
--转自