- 浏览: 213538 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
julyboxer:
http://www.baobao5u.com/Product ...
喝茶的十八个层次,你属于哪一层? -
xiaolong0211:
呵呵,学习了,这两天一直在装gcc,可算装上了,谢谢
Red Hat enterprise 5 gcc安装顺序 -
run_xiao:
翻译的不是很到位啊
推荐引擎mahout相关资料 -
julyboxer:
关键价值链
B2C网络站点资源梳理 -
julyboxer:
要买的书http://product.dangdang.com ...
B2C网络站点资源梳理
http://blog.chinaunix.net/u3/99392/showart.php?id=1990064
TUXEDO应用系统的配置
一个TUXEDO应用系统的所有资源都在一个文本文件中进行定义,该文件称为UBBCONFIG,在配置完成后,UBBCONFIG被编译成一个二进制的 文件TUXCONFIG.在TUXEDO系统启动时,从该文件中读取系统的配置信息。 UBBCONFIG文件类似WINDOWS下的*.INI文件。它包括以下9大部分, 我们称之为节,RESOURCES,MACHIENS,GROUPS
这三个节必须的,其他的节是可选的。
MACHINES(必需): 一个TUXEDO应用系统可以跨越多台服务器,在该节中配置与每台服务
器有关的信息
GROUPS(必需): TUXEDO中的服务可被分为多个组,在该节中配置与组有关的信息
SERVERS(可选): 与SERVER有关的信息在该节配置
SERVICES(可选): 与SERVICES有关的信息在该节配置
NETWORK(可选):与网络有关的信息在该节配置
ROUTING(可选) :路由规则在该节配置
NETGROUPS(可选):与网络分组有关的信息在该节配置
TUXEDO应用系统
一个TUXEDO应用系统包括服务端,客户端,服务端安装在服务器上,客户端一般安装在PC机上,从开发角度看,一个TUXEDO应用系统包括服务端程序,客户端程序,一个配置文件。此外,一个TUXEDO应用系统可以部署在一台服务器上,也可以部署在多台服务器上。
SERVER:
服务端程序用C或COBAL编写,每一个程序文件编译成一个相应可执行文件,该可执行文件在运行时称为SERVER,它实际上就是一个进程。每个 SERVER都有一个名字,也就是该进程的名字。为与TUXEDO应用系统的服务端区分,我们在本书中,我们用SERVER表示该进程,用服务端表示 TUXEDO应用系统的服务端。
SERVICE:
在每个服务端程序中,主要是一个个的函数,在TUXEDO中称这些函数为SERVICE,一般
也称之为服务。在该SERVICE中实现业务逻辑,在客户端中调用这些SERVICE来实现各
种操作,如在前面的例子simpapp中,服务端程序为simpserv.c,它编译成可执行文件
simperv, simpserv就是一个SERVER,该SERVER包括SERVICE:TOUPPER。
下面我们给出一个配置文件的例子:
*RESOURCES
IPCKEY 123456
MASTER simple
UID 0
GID 0
PERM 0666
MAXACCESSERS 100
DOMAINID simpapp
MODEL SHM
LDBAL Y
SCANUNIT 10
SANITYSCAN 12
BLOCKTIME 6
NOTIFY DIPIN
MAXCONV 10
"MYSYS" LMID="simple"
TUXCONFIG="d:\tuxdemo\pbdemo\tuxconfig"
TUXDIR="d:\tuxedo65"
APPDIR="d:\tuxdemo\pbdemo"
TLOGDEVICE="d:\tuxdemo\pbdemo\TLOG"
TLOGNAME="TLOG"
TLOGSIZE=100
MAXWSCLIENTS=5
CMPLIMIT="MAXLONG,MAXLONG"
NETLOAD=0
SPINCOUNT=0
MAXACLCACHE=100
"GROUP1" LMID="simple" GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA8i"
TMSCOUNT=2
DEFAULT:
CLOPT="-A"
"simpserv" SRVGRP="GROUP1" SRVID=1
CLOPT="-A"
RQADDR="simpserv"
RQPERM=0660 REPLYQ=Y RPPERM=0660 MIN=5 MAX=5 CONV=N
MAXGEN=1 GRACE=86400 RESTART=N
"WSL" SRVGRP="GROUP1" SRVID=1116
CLOPT="-A -- -n //MYSERVER:8888 -m 2 -M 5 -x 6"
*SERVICES
"TOUPPER"
LOAD=50 PRIO=50
BUFTYPE="ALL"
TRANTIME=30
AUTOTRAN=N
从上到下,是一对多的关系,即:一个TUXEDO系统可以跨越多台服务器,一台服务器上可以有多个GROUP,但一个GROUP只能在一台服务器上,一个GROUP中可以有多个SERVER,一个SERVER中可以有多个SERVICE。
下面我们分别对每个节种具体的常见配置进行说明,NETWORK,NETGROUP,ROUTING三节及其他比较高级的配置我们在后面的内容中说明
该节是必须的,在这里配置与整个TUXEDO应用系统有关的信息,主要包括:
IPCKEY: TUXEDO使用它标识公告板及其他的IPC资源。它不能与该服务器上其他的IPC资源的ID号冲突范围:32,769-262,142
MASTER: 指定该TUXEDO应用系统的MASTER服务器,在该服务器上对整个TUXEDO系
统进行管理配置,可以为该MASTER服务器指定一台备份服务器,当该MASTER
服务器当机时,可从BACKUP服务器上进行管理。在进行系统迁移时,也要指定
BACKUP服务器。
DOMAINID:该TUXEDO应用系统的唯一标识
UID: 可对该TUXEDO应用系统进行管理的TUXEDO系统管理员的用户ID,在UNIX下
就是UNIX系统的用户ID,默认为执行TMLOADCF的用户的ID。在NT下该设置
没有用,要设为0。
GID: 在UNIX下为UID中所指定的用户所在的组ID,在NT下该设置没有用,要设为0
PERM: 指定对TUXEDO系统IPC资源的存取权限。默认值为0666,即任何人都可以对该IPC资源进行存取。
该TUXEDO系统的公告板,默认值为50,它包括本地客户端进
程,SERVER进程,但不包括管理进程如:BBL,DBBL等
MAXSERVERS: 在本系统中,总共可以有多少个SERVER存在,包括进行管理的SERVER,
如:BBL,TMS等。默认值为50。
MAXSERVICES: 在本系统中,总共可以有多少个SEVICE存在, 默认值为100。
一个TUXEDO应用系统可能部署在一台服务器上或多台服务器上,也可能是部署在共用一块全局共享内存的几台服务器上,可在MODEL,OPTIONAS中配置该TUXEDO应用系统的部署模式。
MODLE:
SHM: 单机或多台服务器但共用一个全局共享内存
MP: 多台服务器但没有共用一个全局共享内存
MIGRATE: 可对该系统进行迁移
TUXEDO的管理进程BBL定时对它所在的服务器上的TUXEDO系统进行检查,检查超时的事务,超时的客户端连接等。
SCANUNIT: 指定检查的最小时间单位,它单位为秒,必须是5的倍数。默认值为10,即10
秒。
SANTIYSCAN: 每隔多少个SCANUNIT检查一次, SANITYSCAN*SCANUNIT不能大于
300秒。默认值为12,即120秒
BLOCKTIME: 指定一个消息可以阻塞多长时间,如果过了SANITYSCAN*SCANUNIT秒该
消息还没有发送出去,将超时出错。 SANITYSCAN*SCANUNIT不能大于
32767秒。默认值为6,即60秒。
对同步调用TPCALL,指从TPCALL()开始调用,到SERVER端的返回结果到到该客户端并写到输入缓冲区这一段时间。包括:
客户端开始调用TPCALL()
把数据通过网络发送到SERVER端
SERVER端的处理时间
SERVER端把处理结果通过网络返回给客户端
客户端TPCALL()调用返回
对异步调用和会话方式,当一个进程调用TPACALL(),TPCONNECT(),TPSEND()时,超时时间只包括如果接收队列满时,这些调用的等 待时间,如在TPACALL()中,所调用的SERVICE的接收队列如果满了,那么TPACALL()可阻塞在那里,直到该队列不满,可以接收该 TPACALL()发送的请求。从TPACALL()开始阻塞到TPACALL()返回这段时间为它的超时时间。
对TPGETRPLY(),TPRECV()的超时时间是指如果要接收的队列为空时,它们应该阻塞在那里等待有消息到来的时间。
如:超时时间为60秒, 一点整调用TPGETRPLY()从接收的队列取消息,这时接收队列为空,如果到了一点零一分该接受队列还为空,那么TPGETRPLY()将超时出错。
IGNORE: 该TUXEDO系统中的CLIENT不接收任何消息
SIGNAL: 用SIGUSR1,SIGUSR2信号通知CLIENT有消息到来,如果在非UNIX平台上设
置采用该方式,那么会被自动转化为DIPIN方式。
DIPIN: 当CLIENT调用ATMI函数时,顺便检查看是否有消息,如果有就发送给该
CLIENT默认值为DIPIN
*MACHINES(必需):
该TUXEDO应用系统所包含的每台服务器都要在该节中进行配置
LMID: 在TUXEDO,要为该应用系统中的每台服务器指定一个逻辑服务器名。如在上面的例子中,TUXEDO应用服务器MYSYS对应的逻辑服务器名为:simple,
TUXEDO应用服务器名的查看方法:
1. 在UNIX下用uname -n 查看SERVER的名字,
2. 在NT,WIN2000下用ECHO %COMPUTERNAME$查看SERVER的名字
注意:如果SERVER的名字太长(>8)或含有“.”等可以" "引起来,如: "DEMOSERVER.COM"
TUXDIR: TUXEDO的安装目录
APPDIR: TUXEDO应用系统所在的目录
注意:TUXCONFIG,TUXDIR,APPDIR的值要与它们在环境变量中的设置的值一样
ENVFILE: 该服务器上与TUXEDO有关的环境变量(如FIELDTBLS等)可以放到一个文件中,在ENVFILE中指定该文件名。
TYPE: 指定该服务器的类型,当两台服务器的TYPE不一样时,在它们之间传送数据时要进行
编码/解码工作
ULOGPFX: 指定ULOG文件所在的目录及前缀。默认目录为$APPDIR,前缀为ULOG。
*GROUPS(必需):
在TUXEDO中,要对SERVER进行分组,配置GROUP主要有三个目的,
1.因为GROUP与数据库之间是一对一的关系,在一TUXEDO应用系统中,如果有多个数据库,就要配置多个GROUP,在该GROUP中配置TUXEDO与数据库的连接参数等。
2. 数据依赖路由是以GROUP为单位的。
3.进行系统迁移时也时以GROUP为单位的一个GROUP有一个名字,还有一个GROUP
ID,GROUP的名字和GROUP ID在一个TUXEDO系统中必须唯一。
每个GROUP要指定该GROUP所在的服务器,及它的ID号,如果该GROUP中的SERVER
要与数据库或其他的资源管理器相连,那么要在OPENINFO中设置连接的参数。具体的配置我们在讲数据库编程时再说明。
*SERVERS:
该系统所包含的所有的SERVER都在该节进行配置。
在DEFAULT中的设置对所有的SERVER起作用。
SRVGRP: 该SERVER所在的GROUP
SRVID: 该SERVER所对应的ID,在一个GROUP中必须唯一
MIN: 该SERVER最少启动的进程数
MAX: 该SERVER最多可启动的进程数
RESTART 该进程死掉时是否可以自动重起,默认为N(不可以)
GRACE,MAXGEN:在GRACE秒内,该进程最多可以重启MAXGEN次。
RCMD: 指定该SERVER重启时,要执行的一个可执行文件名
注意:
1.为了使一个SERVER可以自动重起,光设置了RESTART=Y还不够,还要设置
GRACE,MAXGEN才能在该SERVER死掉时,自动重起,
2. 该SERVER能够被自动重起的一个前提条件时它还没有被从BULLITION BOARD中清
除。
例子:
test SRVGRP=GROUP1 SRVID=1 RESTART=Y GRACE=100000 MAXGEN=255
该设置指定在100000秒的时间内,SERVER进程:test可以启动255次。
在缺省情况下,TUXEDEO的每一个SERVER对应一个请求队列,该SERVER从该请求队列中取客户端发来的请求,并把处理的结果通过该请求队列返 回给客户端,TUXEDO的SERVER可以配置成多个SERVER对应一个请求队列,即MSSQ方式,以提高响应的速度。
与MSSQ有关的参数是:
RQADDR:该请求队列的名字,一般设成与该SERVER的名字一样
RAPERM:该请求队列的存取权限,默认为0666
REPLYQ:该SERVER中的某个SERVICE调用其他的SERVICE,并有返回结果,则应设置
REPLYQ=Y,即把其他SERVICE的应答放到该队列中
CLOPT: 指定该SERVER的启动参数。默认为-A,即再该SERVER启动时,发布该SERVER
包含的所有的SERVICE。通用的有:
-e: 指定错误输出文件,默认为$APPDIR下的stderr
-o: 指定标准输出文件,默认为$APPDIR下的stdout
-r: 记录该SERVER中SERVICE每次调用的处理时间,并记录在错误输出文件中,然后可采用
TUXEDO的性能分析工具txrpt对该SERVER进行性能分析。
-A: 发布该SERVER包含的所有的SERVICE
在SERVICES中可针对每个SERVICE进行配置,主要有:
AUTOTRAN: 调用该SERVICE时是否自动启一个全局事务。默认为N
LOAD:如果采用负载均衡,指定该SERVICE的负载因子,默认为50
PRIO: 指定该SERVICE的优先级,默认为50
DDR: 指定数据依赖路由规则
1.在MACHINES中要配置MAXWSCLIENTS,即最多可以有多少个远程客户端同时连接
到该服务器上,在上面的例子中为5个
2. 在SERVERS中要配置SERVER:WSL
WSL SRVGRP="GROUP1" SRVID=1116 CLOPT="-A -- -n //192.168.120.113:8888 -m 2 -M 5 -x 6"
说明:
-n //192.168.120.113:8888: 远程客户端通过该端口与服务器建立连接
-m 2 :最少启动多少个WSH进程
-M 5::最多启动多少个WSH进程,默认值为MAXWSCLIENTS/m
-x 6:每个WSH进程可同时处理多少个远程客户端
3.程客户端所在的服务器上要配置WSNADDR环境变量,它的值为-n参数的值,如在上面的配置中为:
SET WSNADDR= //192.168.120.113:8888
用下面的命令进行编译:
tmloadcf –y UBBCONFIG文件名
如:下面的命令编译名为ubbsimple的TUXEDO配置文件,生成二进制的配置文件
TUXCONFIG
tmloadcf –y ubbsimple
D:\simpdb>tmloadcf -y ubb
CMDTUX_CAT:1601: ERROR: TUXCONFIG,TUXOFFSET d:\simpdb\tuxconfig 0 doesn't match first device entry on configuration d:\tuxdemo\simpdb\tuxconfig 0
D:\simpdb>del tuxconfig
D:\simpdb>tmloadcf -y ubb
D:\simpdb>
用tmunloadcf命令可对二进制的配置文件TUXCONFIG的进行反编译
如下面的命令反编译TUXCONFIG,并把结果输出到文件myubb中。通过反编译TUXCONFIG可查看该TUXEDO应用系统的一些属性默认值。
Tmunloadcf >myubb
3.2 多机(MP)模式的配置
如果配置了MP方式,那么在这些服务器之间可以做负载均衡和容错,客户端可以和其中的任何一台服务器建立连接,如果该服务器上没有该客户端所要调用的服务 (SERVICE),TUXEDO可以自动把请求发送到别的有该服务的机器取处理,并把结果返回个客户端,如图,SITE1上的客户端调用了 TRANSFER,当在SITE1上没有该SERVICE,在SITE3上有,
那么SITE1通过BRIDGE把请求发送到SITE3上,SITE3把处理结果也通过BRIDGE发送到SITE1上,通过SITE1把结果返回给该客户端。这些对客户端时透明的。
如果SITE1,STIE2,SITE3上都有TRANSFER,并且设置了负载均衡(LDBAL =Y),那么TUXEDO将根据他们的负载情况把请求发送到负载较小的服务器上。
如果SITE1,SITE2,SITE3中的某一台或两台服务器出故障了,那么正常的机器仍然能够继续运行,如果时他们之间的网络连接断了,BRIDGE 进程会自动进行重试,并且在这些服务器之间可以配置多个网络连接通路,当其中的一个出现故障时,会自动采用别的连接通路。
所以MP方式提供了一个高可靠性的分布式应用系统。
1. 这些服务器之间可以通过网络互相访问
2. 在每台服务器上都正确安装了TUXEDO SERVER
3. 应用已发布到这些服务器上
4. 选择一台服务器做MASTER机,
6. 在RESOURCES,MACHINES,NETWORK,NETGROUPS中做相应的配置
MODEL要设为MP
OPTIONS中要有LAN
BBLQUERY: 每台服务器上的BBL每隔SCANUNIT*BBLQUERY秒,向MASTER机上的
DBBL发送一次状态信息。默认为300秒
DBBLWAIT: 如果MASTER机没有收到某台服务器发送的状态信息,它将等待
SCANUNIT*DBBLWAIT秒,如果还没有收到该服务器发送的状态信息,这台服务
器将被分离出去(PARTITIONED),默认为20秒
在MACHINES中要配置该TUXEDO应用系统包括的每台服务器,如果该服务器时UNIX服务器,那么要配置UID,GID,UID,GID为TUXEDO用户所对应的UID,GID,在UNIX下可以用ID命令查看。
NETWORK:
在该节中配置服务器之间通讯的IP地址及BRIDGE进程,
在一个MP方式的TUXEDO应用系统中,不同的服务器之间通过BRIDGE进程进行通讯,该BRIDGE的侦听IP地址及端口
在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备,如果是在NT下则不要。
NLSADDR为tlisten进程侦听的IP地址及端口。
SUN5.8服务器一台,安装TUXEDO6.5, 服务器名SUN,IP地址:12.22.32.35
MASTER机为WIN2000服务器,BACKUP机为SUN。
把WIN2000服务器上的TUXCONFIG文件发送到SUN服务器上。
IPCKEY 87656
MASTER site1,site2
MAXACCESSERS 40
MAXSERVERS 40
MAXSERVICES 40
MODEL MP
OPTIONS LAN
WIN LMID=site1
APPDIR="d:\tuxdemo\mp"
TUXCONFIG="d:\tuxdemo\mp\tuxconfig"
TYPE="win2000"
TUXDIR="d:\tuxedo65"
UID=1006
GID=30
APPDIR="/export/home/simpapp"
TUXCONFIG="/export/home/simpapp/tuxconfig"
TYPE="sun"
TUXDIR="/export/home/tuxedo"
GROUP1
LMID=site1 GRPNO=1 OPENINFO=NONE
GROUP2
LMID=site2 GRPNO=2 OPENINFO=NONE
*NETWORK
site1 NADDR="//10.13.1.124:6000"
NLSADDR="//10.13.1.124:6001"
site2 NADDR="//12.22.32.35:6000"
NLSADDR="//12.22.32.35:6001"
BRIDGE="/dev/tcp"
DEFAULT:
CLOPT="-A"
TOUPPER
1. 在WIN2000服务器上把该UBBCONFIG编译成TUXCONFIG
tmloadcf -y ubbmp
2. 在WIN2000服务器上启动tlisten进程
tlisten -l //10.13.1.124:6001
3. 在SUN服务器上启动tlisten进程
tlisten -d /dev/tcp -l /12.22.32.35:6001
4. 在WIN2000服务器上启动该TUXEDO应用系统
tmboot -y
TUXEDO会先启动WIN2000服务器上的进程,然后再启动SUN服务器上的进程。
5. 在WIN2000服务器上执行
simpcl mp test
因为WIN2000服务器上没有TOUPPER服务,TUXEDO会自动调用SUN服务器上的TOUPPER服务,并把结果返回给客户端,这一切对客户端来说是透明的。
Tuxedo是一个很好的交易中间件,包含消息中间件等功能,历史悠久,功能强 大,是由BEA开发的,不过现在属于Oracle了。网上的Tuxedo入门教程千千万万,几乎没有一个可用的。尤其是在licsence和远程客户端配 置这两个问题上,都没有交代清楚。很符合中国的IT教程特色:“懂得人看得懂,但是并没有更懂;不懂的人更加不懂了!”。
本文集中讨论了四个问题:
l Tuxedo的安装;
l SDK和RTC的License;
l Simpapp例子
l 远程客户端配置
好了,开始吧,我的开发环境如下,如果开发环境不同,也许本教程不适合你:
l Tuxedo8.1
l VC6
l 服务器:windows XP
l 客户端:Windows XP(VMWARE上)
本文的源代码在这里,你也许要根据下面的教程修改后才能成功运行:
http://download.csdn.net/source/1107802
1. Tuxedo8.1安装
Tuxedo8.1下载地址如下:
Microsoft Windows (32 bit) http://ftpmain.bea.com/download/pub/tuxedo...uxedo81_win.exe
下载完成后直接双击就可以安装了,可以选择安装服务器或者客户端。安装的时候需要选择bea的home目录和Tuxedo的目录,都可以采用默认配置。服务端还需要指定tlisten密码。其他都暂时不需要配置,包括license都可以留到后面配置。
2. License
Tuxedo的license分为SDK和RTC两种,SDK即开发版,RTC即发布版。我刚开始就是得到了一个RTC,兴高采烈的run例子的时候编译
不过,告诉我“你没有一个合法的SDK
license”。其实bea已经公布了所有的license,直接去官方网站下载就可以了,不要到处找所谓的无限制xx
license,Tuxedo8.1的SDK license地址如下:
http://licensecodes.oracle.com/downloads/LIC-TUX81-SDK-56B.zip
下载后解压,将文件名改为lic.txt,然后拷贝到TUXEDO_HOME\udataobj目录下面就可以了。我的TUXEDO_HOME是C:\bea\tuxedo8.1。
拷贝完成后license马上生效。
3. Simpapp例子
Simpapp是Tuxedo自带的一个简单例子,只有服务器版本带有例子程序。我的例子在C:\bea\tuxedo8.1\samples\atmi\simpapp。将该例子拷贝到另外一个目录,例如:C:\tuxedo_test\simpapp。
例子中有如下几个文件:
l README和README.NT,是说明文件,但是我认为说得不详细,起码license和远程客户端配置就没说清楚;
l setenv.cmd,设置环境变量的批处理文件;
l ubbsimple,Tuxedo的应用程序配置文件,它会被编译为二进制的配置文件,所有服务端程序都需要该配置文件;
l simpapp.nt,makefile文件,用来编译服务器和客户端程序;
l simpcl.c,客户端源程序;
l simpserv.c,服务端源程序;
要编译运行Simpapp例子,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译源程序;4)启动服务;5)运行客户端;6)关闭服务。
注意:这是本地客户端的步骤,若是远程客户端,还有一些变动。
设置环境变量
首先,把本文的系统相关变量列举如下,大家要根据自己的情况在下面的各种配置文件中更改:
Tuxedo目录:C:\bea\tuxedo8.1
Tuxedo应用程序目录:C:\tuxedo_test\simpapp
服务器IP:192.168.222.1
客户端IP:192.168.222.2
修改setenv.bat文件:其解释已经在源代码中
rem 设置TUXEDO目录
set TUXDIR=C:\bea\tuxedo8.1
rem 设置TUXEDO应用程序目录
set APPDIR=C:\tuxedo_test\simpapp
rem 设置系统path
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
rem 设置TUXEDO应用程序配置文件
set TUXCONFIG=%APPDIR%\tuxconfig
然后打开一个windows控制台,将目录变更为tuxedo应用程序所在目录,即C:\tuxedo_test\simpapp,运行setenv.bat。
C:\tuxedo_test\simpapp>setenv
修改编译配置文件
在修改配置文件前,先得到自己的计算机名称,运行:
C:\tuxedo_test\simpapp>echo %computername%
就可以得到自己的计算机名称,一般都是大写的。
Ubbsimple是本程序(即simpapp)的配置文件,将其修改为:
*RESOURCES
IPCKEY 123496 #这个数字可以自己定
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="C:\tuxedo_test\simpapp"
TUXCONFIG="C:\tuxedo_test\simpapp\tuxconfig"
TUXDIR="C:\bea\tuxedo8.1"
"WXB" LMID=simple #注意,把”WXB”改成自己的计算机名称
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER
配置文件是Tuxedo中最繁琐的部分,稍有不对服务就无法发布和执行,所以一定要仔细检查。目前不需要太多了解,按我写的做就可以了。注意,配置文件和源程序的编译链接无关,只和服务发布相关,客户端也不需要配置文件。
修改完配置文件后,就需要将其编译为二进制的配置文件,其名称和目录由系统变量TUXCONFIG决定,该变量已经在setenv.bat中设置 了,此处是C:\tuxedo_test\simpapp\\tuxconfig,这个tuxconfig就是服务用来发布时的二进制配置文件。
编译配置文件:
C:\tuxedo_test\simpapp>tmloadcf -y ubbsimple
若成功完成,则会生成tuxconfig。
编译源程序
使用makefile的方式编译源程序,这里我使用的是vc6自带的nmake命令,要确保你的vc相关目录已经正确在windows的path变量中设置。Makefile文件已经写好,不需要更改,即simpapp.nt。执行命令如下:
C:\tuxedo_test\simpapp>nmake -f simpapp.nt
当然,如果你不熟悉makefile,那么可以使用如下两个命令别分编译客户端和服务端,其实这两条命令是我从simpapp.nt中抄出来的:
buildclient -o simpcl -f simpcl.c
buildserver -s TOUPPER -o simpserv -f simpserv.c
若成功,则可发现在目录下出现了simpcl.exe和simpserv.exe文件。
启动服务
启动服务非常easy,如果你前面都做对了的话:
C:\tuxedo_test\simpapp>tmboot -y
启动成功后会告诉你,两个进程已经成功启动。
运行客户端
如下命令:
C:\tuxedo_test\simpapp>simpcl "hello,wenwen"
Returned string is: HELLO,WENWEN
客户端会将一个字符串传送给服务器,服务器返回该字符串的大写形式。为什么是“hello,wenwen”而不是“hello,tuxedo”呢?嗯,因为写到这儿的时候刚好雯雯到我身边来了。
关闭服务
关闭服务很容易,而且不会失败:
C:\tuxedo_test\simpapp>tmshutdown –y
4. 远程客户端配置
好了,重点终于来了。毕竟对于大部分人来说,用中间件就是为了使用远程客户端,本地客户端只是玩玩而已嘛。远程客户端需要服务器端修改一些配置,远程客户端也要进行一些配置。
服务器端
要编译运行Simpapp例子,使其能够为本地客户端提供服务,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译源程序;4)启动服务;5)运行客户端;6)关闭服务。
要编译运行Simpapp例子,使其能够为远程客户端提供服务,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译远程客户端源程序;4)启动服务;5)运行远程客户端;6)关闭服务。
为了不让读者出错,我还是用最详细的方式把这些步骤都完成写一遍,当然,与上面不同的部分会用红色标注出来。
(1)设置环境变量
再次修改seten.bat文件:
rem 设置TUXEDO目录
set TUXDIR=C:\bea\tuxedo8.1
rem 设置WSN地址和端口
set WSNADDR=\\192.168.222.1:8888
rem 设置TUXEDO应用程序目录
set APPDIR=C:\tuxedo_test\simpapp
rem 设置系统path
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
rem 设置TUXEDO应用程序配置文件
set TUXCONFIG=%APPDIR%\tuxconfig
注意,其中加入了WSN地址和端口的配置,地址就是本服务器IP地址,端口可以随意指定,只要不冲突就好。
运行setenv
C:\tuxedo_test\simpapp>setenv
(2)修改编译配置文件
再次修改ubbsimple
*RESOURCES
IPCKEY 123496 #这个数字可以自己定
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="C:\tuxedo_test\simpapp"
TUXCONFIG="C:\tuxedo_test\simpapp\tuxconfig"
TUXDIR="C:\bea\tuxedo8.1"
"WXB" LMID=simple #注意,把"WXB"改成自己的计算机名称
MAXWSCLIENTS=5 #指定的最大客户端连接数
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
WSL SRVGRP=GROUP1 SRVID=5 CLOPT="-A -t -- -n //192.168.222.1:8888 -m 2 -M 5 -x 10" #WSL发布地址
*SERVICES
TOUPPER
仅仅增加了两行代码,即最大客户端连接数和WSL的发布地址。其具体意义可以看书,这个倒是很多书都说清楚了。
编译配置文件:
C:\tuxedo_test\simpapp>tmloadcf -y ubbsimple
(3)编译远程客户端源程序
上面已经编译了服务端和本地客户端程序,远程客户端程序的编译下节再说。
(4)启动服务
同上。不过这次会启动三个进程,其中一个是WSL。Look:
C:\tuxedo_test\simpapp>tmboot -y
Booting all admin and server processes in C:\tuxedo_test\simpapp\tuxconfig
INFO: BEA Tuxedo, Version 8.1
INFO: Serial #: 454493271161-2671077484631, Expiration NONE, Maxusers 1000000
INFO: Licensed to: Customer
Booting admin processes ...
exec BBL -A :
process id=2556 ... Started.
Booting server processes ...
exec simpserv -A :
process id=3564 ... Started.
exec WSL -A -t -- -n //192.168.222.1:8888 -m 2 -M 5 -x 10 :
process id=760 ... Started.
3 processes started.
(6)运行远程客户端
下面详细交代。
(7)关闭服务
同上。
远程客户端
运行远程客户端需要三个步骤:1)设置环境;2)修改编译远程客户端程序;3)运行。
首先,将如下文件拷贝到远程客户端计算机:
l Setenv.bat
l Simplecl.c
l Simpapp.nt
(1)设置环境
根据远程客户端的系统相关配置修改setenv.bat,注意WSNADDR要和服务器的一致:
rem 设置TUXEDO目录
set TUXDIR=C:\bea\tuxedo8.1
rem 设置WSN地址和端口
set WSNADDR=\\192.168.222.1:8888
rem 设置TUXEDO应用程序目录
set APPDIR=C:\tuxedo_test\simpapp
rem 设置系统path
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
然后执行setenv:
C:\tuxedo_test\simpapp>setenv
(2)修改编译远程客户端程序
为了实现远程初始化,需要在客户端程序的tpinit函数前中加入一行代码:
tuxputenv("WSNADDR=//192.168.222.1:8888");
当然,为了使得程序可移植性更强,可以从系统变量中读取这个字符串。
然后,用makefile生成远程客户端程序:
C:\tuxedo_test\simpapp>nmake -f simpapp.nt wsimpcl.exe
不懂nmake的可以执行如下命令:
buildclient -w -o wsimpcl -f simpcl.c
成功后得到远程客户端执行程序wsimpcl.exe。
(3)运行
C:\tuxedo_test\simpapp>wsimpcl "hello,remote wenwen"
Returned string is: HELLO,REMOTE WENWEN
为什么是”hello,remote wenwen”呢?因为此时雯雯已经和妈妈在卧室睡着了。
5. 总结
但愿此文能够使大家熟悉Tuxedo的时间缩短一点,不要像我一样用了两天时间到处找资料。其中,SDK和RTC license的问题就花了我一个下午;配置远程客户端花了我一天的时间。其实有好的资料的话,所有的安装配置运行估计一个上午就全部搞定了。
愿中国和所有懂中文的Tuxedo初学者省下一天半的时间陪老婆孩子吧!我花了周末的半天时间来写这篇文档,我真的是个好人!
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wxb_nudt/archive/2009/03/14/3991060.aspx
评论
13312984000
29092829
AN200501402925
CN12910339
CN12910339
25723122
25723122
26522048
25669359
83199109
83246547
83246547
发表评论
-
喝茶的十八个层次,你属于哪一层?
2010-11-03 11:24 1160看到博友天马的这篇文章,当下就请求在本博转载。应该说此文概括了 ... -
[原创](多图)武夷岩茶传统制作工艺流程雕塑汇总
2010-09-24 10:55 1067我们武夷岩茶传统制作工艺,在武夷山茶博园雕塑汇总, 拍照后现 ... -
网络数据分析工作的五个职责
2010-06-27 11:02 8871、对于PPC竞价效果的数据分析 如:当日点击数,当 ... -
SEO技巧
2010-06-26 10:53 786“百度新鲜嗜好”:每三个月会让一些新的排名到前面,一些原来排名 ... -
《财富》杂志评选的75本必读的最睿智的图书
2010-06-13 10:04 2341商业兴衰 《1929 年大崩盘》(The Great ... -
心灵资本学
2010-06-03 11:53 989心灵智能 16个层级 启蒙 世界灵魂 服务精神 开创 ... -
淘宝排名规划
2010-04-22 14:36 797宝贝收藏,宝贝浏览量,售出数量,店铺信誉,在架时间,宝贝名称关 ... -
设计中的色彩:热情的红色
2010-04-20 16:00 768今天是一个新的系列文 ... -
设计中的色彩:蓝色
2010-04-20 16:00 688上一篇,在这个关于在设计中使用色彩的系列文章的第一篇中,我们研 ... -
设计中的色彩:绿色
2010-04-20 15:59 761到现在为止,我们在这 ... -
设计中的色彩:橙色
2010-04-20 15:59 796接着上篇绿色 ,今天我们将看一下橙色以及它在网页设计和Log ... -
设计中的色彩:黄色
2010-04-20 15:58 920上篇我们讨论了温暖而鲜明的橙色 。今天我们将继续停留在色盘的 ... -
设计中的色彩:紫色
2010-04-20 15:57 1197上一篇我们看了一下快乐的黄色 ,现在轮到黄色的补色——紫色了 ... -
设计中的色彩:棕色
2010-04-20 15:56 722上一篇我们讨论了一下紫色 , 一个十分鲜明的色彩。今天,我 ... -
设计中的色彩:粉色
2010-04-20 15:56 903在上一篇,我们讨论了一下泥土的色彩——棕色 。这次让我们来看 ... -
设计中的色彩:灰色
2010-04-20 15:55 700在这个系列中,我们差不多了解了彩虹中的每一种颜色及其在设计中的 ... -
magento nginx
2010-04-15 14:34 990user www www; worker_proce ... -
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器
2010-04-14 21:56 1238转载:http://blog.s135.com/ngi ... -
Red Hat enterprise 5 gcc安装顺序
2010-04-14 11:37 4121包安装顺序,插入光盘,进入目录cd media/RHEL_5. ... -
FML32 API
2009-08-06 20:28 30411.概述 2.域表文件 3.域头文件 ...
相关推荐
tuxedo配置参数详解及远程客户端配置[借鉴].pdf
tuxedo配置参数详解 tuxedo配置参数详解
TUXEDO配置参数,详细描述了TUXEDO配置配置文件的各个参数
tuxedo 本地和远程客户端
本文总结了Tuxedo的安装、license、例子运行和远程客户端配置四个主要问题,给出了一篇真正可用的Tuxedo入门教程。这个是该文章的例子,文章地址在:http://blog.csdn.net/wxb_nudt
Tuxedo 配置维护手册Tuxedo 作为系统的中间件,其配置主要包括:资源文件的配置和应用环境的配置;其管理和维护主要包括:系统的启动和关闭、日志的跟踪查看工作。
TUXEDO第七章客户端编程
Tuxedo配置管理 Tuxedo基本命令 UBB文件配置说明 数据库XA设置
Tuxedo的配置管理简要说明 Tuxedo的配置管理简要说明
tuxedo配置过程
tuxedo配置文件说明
2.5远程客户端配置 22 2.6 Tuxedo Domains配置 23 3. TUXEDO的缓冲区 27 3.1 概述 27 3.2 FML缓冲区 27 3.2 FML域表文件 29 3.3与缓冲区使用有关的函数 32 3.4 程序中的例子 34 4. TUXEDO应用程序开发 35 4.1 常用的...
weblogic通过wtc与tuxedo进行通讯的配置过程详细说明:1.tuxedo配置;2.weblogic通过jolt(或corba)方式进行配置的步骤。
相信初学tuxedo的人为配置tcp通讯火大,在此分享redhat as4 系统正确配置文件,包括以下文件: .bash_profile hosts services ubbsimple
tuxedo配置说明tuxedo配置说明tuxedo配置说明tuxedo配置说明tuxedo配置说明tuxedo配置说明
补充上一篇文档。图解weblogic 与 tuxedo 8.1 通讯的配置方式(jolt和wtc)。包括weblogic 8.1版本和9.2版本的配置。
Tuxedo配置简要说明,适用于tuxedo初试者
详细描述了TUXEDO应用系统的配置等相关内容
Tuxedo配置管理简要说明.doc Tuxedo配置管理简要说明.doc Tuxedo配置管理简要说明.doc
基于WEBLOGIC TUXEDO ORACLE技术实现远程出单系统.pdf