1、一、WTC配置步骤:1. Tuxedo的配置2.1.1. 设置环境变量:rem(c) 2003 BEA Systems, Inc. All Rights Reserved.rem Copyright (c) 2000 BEA Systems, Inc.rem All Rights Reservedrem THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OFrem BEA Systems, Inc.rem The copyright notice above does not evidence anyrem actual or intended publi
2、cation of such source code.rem Copyright (c) 2000 BEA Systems, Inc.rem All rights reservedrem ident(#) apps/simpapp/setenv.cmd$Revision: 1.5 $ set TUXDIR=c:beatuxedo8.1set WSNADDR=192.168.57.41:8888set APPDIR=c:tuxedo_testsimpappset PATH=%TUXDIR%bin;%APPDIR%;%PATH%set TUXCONFIG=%APPDIR%tuxconfigset
3、BDMCONFIG=%APPDIR%bdmconfig2.1.3. 配置ubbconfig#(c) 2003 BEA Systems, Inc. All Rights Reserved.#ident(#) samples/atmi/simpapp/ubbsimple$Revision: 1.5 $#Skeleton UBBCONFIG file for the TUXEDO Simple Application.#Replace the items with the appropriate values.*RESOURCESIPCKEY123456#Example:#IPCKEY123456D
4、OMAINIDsimpappMASTERsimpleMAXACCESSERS50MAXSERVERS50MAXSERVICES50MODELSHMLDBALN*MACHINESDEFAULT:APPDIR=c:tuxedo_testsimpappTUXCONFIG=c:tuxedo_testsimpapptuxconfigTUXDIR=c:beatuxedo8.1#Example:#APPDIR=/home/me/simpapp#TUXCONFIG=/home/me/simpapp/tuxconfig#TUXDIR=/usr/tuxedoVM44LMID=simpleMAXWSCLIENTS=
5、5 #指定的最大客户端连接数#Example:#beatuxLMID=simple*GROUPSGROUP1 LMID=simple GRPNO=1 OPENINFO=NONEJSLGRP LMID=simple GRPNO = 2 JREPGRP LMID=simple GRPNO = 3 GROUP4 LMID=simple GRPNO=4 OPENINFO=NONE*SERVERSDEFAULT: CLOPT=-A simpserv SRVGRP=GROUP1 SRVID=1WSL SRVGRP=GROUP1 SRVID=5 CLOPT=-A -t - -n /192.168.57.41
6、:8888 -m 2 -M 5 -x 10 #WSL发布地址JREPSVR SRVGRP=JREPGRP SRVID=10 CLOPT=-A - -W -P C:beatuxedo8.1udataobjjoltrepositoryjrepositoryJSL SRVGRP=JSLGRP SRVID=15 CLOPT=-A - -n /192.168.57.41:7777 -M 5 -x 10 -m 2DMADM SRVGRP=GROUP4 SRVID=20GWADM SRVGRP=GROUP4 SRVID=30GWTDOMAIN SRVGRP=GROUP4 SRVID=40*SERVICEST
7、OUPPER红色为jolt服务需要的配置,jolt需要单独的license。蓝色为wtc服务需要的配置。2.1.4. 编译ubbconfig文件tmloadcf -y ubbconfig2.1.5. 配置domconfig*DM_RESOURCESVERSION=U22*DM_LOCAL_DOMAINSTDOM1 GWGRP=GROUP4 TYPE=TDOMAIN DOMAINID=TDOM1 BLOCKTIME=20 MAXDATALEN=56 MAXRDOM=89 DMTLOGDEV=c:/tuxedo_test/simpapp/TLOG AUDITLOG=c:/tuxedo_test/s
8、impapp/AUDITLOG DMTLOGNAME=DMTLOG_TUXDOM *DM_REMOTE_DOMAINSTDOM2 TYPE=TDOMAIN DOMAINID=TDOM2*DM_TDOMAINTDOM1 NWADDR=/192.168.57.41:9998TDOM2 NWADDR=/192.168.57.41:9999*DM_REMOTE_SERVICESTOLOWER RDOM=TDOM2*DM_LOCAL_SERVICESTOUPPER RNAME=TOUPPER红色为tuxedo为接入的weblogic的IP地址。(因此对于新接入的weblogic,tuxedo需要增加配置
9、)。2.1.6. 编译domconfigdmloadcf -y domconfig2. Weblogic配置(9.2为例)2.1.7. 配置config.xml MyWTCServer examplesServer LocalAP-n0 TDOM2 TDOM2 /192.168.57.41:9999 RemoteAP-n0 TDOM1 TDOM1 TDOM2 /192.168.57.41:9998 WTCImportedService-0 TOUPPER TDOM2 TDOM1 TOUPPER 或通过控制台进行配置:新增一个WTC Server配置WTC Server(红框中的是需要配置的)配
10、置Local AP(IP和端口为weblogic的IP和端口,Name和ID最好设置成一样的)配置Remote AP(IP和端口为Tuxedo的IP和端口,并制定一个Local AP)配置Import(resources和remote name最好一致,并等于tuxedo中配置的)配置好了之后可以看到WTC Server的control中已经有connection和service了。并且在context的jndi tree中可以看到tuxedo.services.TuxedoConnection。3. Weblogic做客户端,访问Tuxedo服务(一个jsp) hello%String in
11、Str = hello,hello;String outStr = ;try /调用接口服务 Context ctx = new InitialContext(); TuxedoConnectionFactory cdmaTuxedoFactory = (TuxedoConnectionFactory) ctx.lookup(tuxedo.services.TuxedoConnection); TuxedoConnection cdmaTuxedo = cdmaTuxedoFactory.getTuxedoConnection(); TypedString cdmaData = new Typ
12、edString(inStr); Reply cdmaRtn = cdmaTuxedo.tpcall(TOUPPER, cdmaData, 0); cdmaData = (TypedString) cdmaRtn.getReplyBuffer(); outStr = cdmaData.toString(); cdmaTuxedo.tpterm(); out.println(out = +outStr);catch(Exception e) outStr = e.getMessage(); e.printStackTrace();/out.println(); %上面jsp执行结果为:以上为在w
13、eblogic 9.2上的配置过程,在weblogic 8.1上也可以配置wtc。Weblogic 8.1中的config.xml相关部分如下: 如果出现错误,可以同时检查weblogic日志和tuxedo日志,看错误原因。二、 添加一个jolt服务(需要jolt liccense)1. Tuxedo的配置下载支持jolt的licence。下载后解压,将文件名改为lic.txt,然后拷贝到TUXEDO_HOMEudataobj目录下面就可以了。我的TUXEDO_HOME是C:beatuxedo8.1。拷贝完成后license马上生效。其他配置方法,在下面WTC配置步骤的红色部分已经标出。2.
14、测试Tuxedo配置是否正确。利用tuxedo自带工具检查jolt服务是否工作正常。C:beatuxedo8.1udataobjjoltappletviewer RE.html2. WebLogic端配置(weblogic9.2没有配通,用weblogic 8.1.6完成配置)编辑:C:beaweblogic81samplesdomainsexamplesstartExamplesServer.cmdCLASSPATH=C:beaweblogic81serverlibwebservices.jar;%POINTBASE_CLASSPATH%;%CLIENT_CLASSES%;%SERVER_C
15、LASSES%;%COMMON_CLASSES%;%CLIENT_CLASSES%utils_common.jar;c:joltwls.jar;c:joltjse.jar;c:jolt.jar红色jar为C:beatuxedo8.1udataobjjolt下的三个jar包。配置jolt连接池下面三个红框类的参数设置一下。名称随便取一个,地址为jsl的地址,target选择当前的web应用。3.设置启动类和停止类。将启动的和停止类分别设置为:bea.jolt.pool.servlet.weblogic.PoolManagerStartUpbea.jolt.pool.servlet.weblogi
16、c.PoolManagerShutDown重启,完成weblogic配置。3. 增加jsp调用 hello%String inStr = hello,hello;String outStr = ;try /调用jolt接口服务 SessionPoolManager b_mgr = SessionPoolManager.poolmgr; out.println(b_mgr = + b_mgr); ServletSessionPool servletSessionPool = (ServletSessionPool) b_mgr. getSessionPool(joltconnpool);out.
17、println(servletSessionPool = + servletSessionPool); ServletResult servletResult = servletSessionPool.call(TOUPPER, request, null); String result = (String) servletResult.getValue(STRING, 0, ); out.println(result = + result);catch(Exception e) outStr = e.getMessage(); e.printStackTrace();out.println(
18、); %效果截图:由于,weblogic 9.2中没有weblogic.server.Server导致jolt的启动类加载不成功,所以改用weblogic 8.1.6完成配置。附录:Tuxedo安装license例子和远程客户端配置(转)摘要:本文总结了Tuxedo的安装、license、例子运行和远程客户端配置四个主要问题,给出了一篇真正可用的Tuxedo入门教程。Tuxedo是一个很好的交易中间件,包含消息中间件等功能,历史悠久,功能强大,是由BEA开发的,不过现在属于Oracle了。网上的Tuxedo入门教程千千万万,几乎没有一个可用的。尤其是在licsence和远程客户端配置这两个问题
19、上,都没有交代清楚。很符合中国的IT教程特色:“懂得人看得懂,但是并没有更懂;不懂的人更加不懂了!”。本文集中讨论了四个问题:lTuxedo的安装;lSDK和RTC的License;lSimpapp例子l远程客户端配置好了,开始吧,我的开发环境如下,如果开发环境不同,也许本教程不适合你:lTuxedo8.1lVC6l服务器:windows XPl客户端:Windows XP(VMWARE上)本文的源代码在这里,你也许要根据下面的教程修改后才能成功运行:1.Tuxedo8.1安装Tuxedo8.1下载地址如下:Microsoft Windows (32 bit)下载完成后直接双击就可以安装了,可
20、以选择安装服务器或者客户端。安装的时候需要选择bea的home目录和Tuxedo的目录,都可以采用默认配置。服务端还需要指定tlisten密码。其他都暂时不需要配置,包括license都可以留到后面配置。2.LicenseTuxedo的license分为SDK和RTC两种,SDK即开发版,RTC即发布版。我刚开始就是得到了一个RTC,兴高采烈的run例子的时候编译不过,告诉我“你没有一个合法的SDK license”。其实bea已经公布了所有的license,直接去官方网站下载就可以了,不要到处找所谓的无限制xx license,Tuxedo8.1的SDK license地址如下:下载后解压,
21、将文件名改为lic.txt,然后拷贝到TUXEDO_HOMEudataobj目录下面就可以了。我的TUXEDO_HOME是C:beatuxedo8.1。拷贝完成后license马上生效。3.Simpapp例子Simpapp是Tuxedo自带的一个简单例子,只有服务器版本带有例子程序。我的例子在C:beatuxedo8.1samplesatmisimpapp。将该例子拷贝到另外一个目录,例如:C:tuxedo_testsimpapp。例子中有如下几个文件:lREADME和README.NT,是说明文件,但是我认为说得不详细,起码license和远程客户端配置就没说清楚;lsetenv.cmd,设
22、置环境变量的批处理文件;lubbsimple,Tuxedo的应用程序配置文件,它会被编译为二进制的配置文件,所有服务端程序都需要该配置文件;lsimpapp.nt,makefile文件,用来编译服务器和客户端程序;lsimpcl.c,客户端源程序;lsimpserv.c,服务端源程序;要编译运行Simpapp例子,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译源程序;4)启动服务;5)运行客户端;6)关闭服务。注意:这是本地客户端的步骤,若是远程客户端,还有一些变动。设置环境变量首先,把本文的系统相关变量列举如下,大家要根据自己的情况在下面的各种配置文件中更改:Tuxedo目录
23、:C:beatuxedo8.1Tuxedo应用程序目录:C:tuxedo_testsimpapp服务器IP:192.168.222.1客户端IP:192.168.222.2修改setenv.bat文件:其解释已经在源代码中rem设置TUXEDO目录set TUXDIR=C:beatuxedo8.1rem设置TUXEDO应用程序目录set APPDIR=C:tuxedo_testsimpapprem设置系统pathset PATH=%TUXDIR%bin;%APPDIR%;%PATH%rem设置TUXEDO应用程序配置文件set TUXCONFIG=%APPDIR%tuxconfig然后打开一个
24、windows控制台,将目录变更为tuxedo应用程序所在目录,即C:tuxedo_testsimpapp,运行setenv.bat。C:tuxedo_testsimpappsetenv修改编译配置文件在修改配置文件前,先得到自己的计算机名称,运行:C:tuxedo_testsimpappecho %computername%就可以得到自己的计算机名称,一般都是大写的。Ubbsimple是本程序(即simpapp)的配置文件,将其修改为:*RESOURCESIPCKEY123496#这个数字可以自己定DOMAINIDsimpappMASTERsimpleMAXACCESSERS10MAXSER
25、VERS5MAXSERVICES10MODELSHMLDBALN*MACHINESDEFAULT:APPDIR=C:tuxedo_testsimpappTUXCONFIG=C:tuxedo_testsimpapptuxconfigTUXDIR=C:beatuxedo8.1WXBLMID=simple#注意,把”WXB”改成自己的计算机名称*GROUPSGROUP1LMID=simpleGRPNO=1OPENINFO=NONE*SERVERSDEFAULT:CLOPT=-AsimpservSRVGRP=GROUP1 SRVID=1*SERVICESTOUPPER配置文件是Tuxedo中最繁琐的部
26、分,稍有不对服务就无法发布和执行,所以一定要仔细检查。目前不需要太多了解,按我写的做就可以了。注意,配置文件和源程序的编译链接无关,只和服务发布相关,客户端也不需要配置文件。修改完配置文件后,就需要将其编译为二进制的配置文件,其名称和目录由系统变量TUXCONFIG决定,该变量已经在setenv.bat中设置了,此处是C:tuxedo_testsimpapptuxconfig,这个tuxconfig就是服务用来发布时的二进制配置文件。编译配置文件:C:tuxedo_testsimpapptmloadcf -y ubbsimple若成功完成,则会生成tuxconfig。编译源程序使用makefi
27、le的方式编译源程序,这里我使用的是vc6自带的nmake命令,要确保你的vc相关目录已经正确在windows的path变量中设置。Makefile文件已经写好,不需要更改,即simpapp.nt。执行命令如下:C:tuxedo_testsimpappnmake -f simpapp.nt当然,如果你不熟悉makefile,那么可以使用如下两个命令别分编译客户端和服务端,其实这两条命令是我从simpapp.nt中抄出来的:buildclient-o simpcl -f simpcl.cbuildserver -s TOUPPER -o simpserv -f simpserv.c若成功,则可发
28、现在目录下出现了simpcl.exe和simpserv.exe文件。启动服务启动服务非常easy,如果你前面都做对了的话:C:tuxedo_testsimpapptmboot -y启动成功后会告诉你,两个进程已经成功启动。运行客户端如下命令:C:tuxedo_testsimpappsimpcl hello,wenwenReturned string is: HELLO,WENWEN客户端会将一个字符串传送给服务器,服务器返回该字符串的大写形式。为什么是“hello,wenwen”而不是“hello,tuxedo”呢?嗯,因为写到这儿的时候刚好雯雯到我身边来了。关闭服务关闭服务很容易,而且不会失
29、败:C:tuxedo_testsimpapptmshutdown y4.远程客户端配置好了,重点终于来了。毕竟对于大部分人来说,用中间件就是为了使用远程客户端,本地客户端只是玩玩而已嘛。远程客户端需要服务器端修改一些配置,远程客户端也要进行一些配置。服务器端要编译运行Simpapp例子,使其能够为本地客户端提供服务,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译源程序;4)启动服务;5)运行客户端;6)关闭服务。要编译运行Simpapp例子,使其能够为远程客户端提供服务,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译远程客户端源程序;4)启动服务;5)运行远程客
30、户端;6)关闭服务。为了不让读者出错,我还是用最详细的方式把这些步骤都完成写一遍,当然,与上面不同的部分会用红色标注出来。(1)设置环境变量再次修改seten.bat文件:rem设置TUXEDO目录set TUXDIR=C:beatuxedo8.1rem设置WSN地址和端口set WSNADDR=192.168.222.1:8888rem设置TUXEDO应用程序目录set APPDIR=C:tuxedo_testsimpapprem设置系统pathset PATH=%TUXDIR%bin;%APPDIR%;%PATH%rem设置TUXEDO应用程序配置文件set TUXCONFIG=%APPD
31、IR%tuxconfig注意,其中加入了WSN地址和端口的配置,地址就是本服务器IP地址,端口可以随意指定,只要不冲突就好。运行setenvC:tuxedo_testsimpappsetenv(2)修改编译配置文件再次修改ubbsimple*RESOURCESIPCKEY123496#这个数字可以自己定DOMAINIDsimpappMASTERsimpleMAXACCESSERS10MAXSERVERS5MAXSERVICES10MODELSHMLDBALN*MACHINESDEFAULT:APPDIR=C:tuxedo_testsimpappTUXCONFIG=C:tuxedo_testsi
32、mpapptuxconfigTUXDIR=C:beatuxedo8.1WXBLMID=simple#注意,把WXB改成自己的计算机名称MAXWSCLIENTS=5#指定的最大客户端连接数*GROUPSGROUP1LMID=simpleGRPNO=1OPENINFO=NONE*SERVERSDEFAULT:CLOPT=-AsimpservSRVGRP=GROUP1 SRVID=1WSL SRVGRP=GROUP1 SRVID=5 CLOPT=-A -t - -n /192.168.222.1:8888-m 2 -M 5 -x 10#WSL发布地址*SERVICESTOUPPER仅仅增加了两行代码
33、,即最大客户端连接数和WSL的发布地址。其具体意义可以看书,这个倒是很多书都说清楚了。编译配置文件:C:tuxedo_testsimpapptmloadcf -y ubbsimple(3)编译远程客户端源程序上面已经编译了服务端和本地客户端程序,远程客户端程序的编译下节再说。(4)启动服务同上。不过这次会启动三个进程,其中一个是WSL。Look:C:tuxedo_testsimpapptmboot -yBooting all admin and server processes in C:tuxedo_testsimpapptuxconfigINFO: BEA Tuxedo, Version
34、8.1INFO: Serial #: 454493271161-2671077484631, Expiration NONE, Maxusers 1000000INFO: Licensed to: CustomerBooting 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 :pr
35、ocess id=760 . Started.3 processes started.(6)运行远程客户端下面详细交代。(7)关闭服务同上。远程客户端运行远程客户端需要三个步骤:1)设置环境;2)修改编译远程客户端程序;3)运行。首先,将如下文件拷贝到远程客户端计算机:lSetenv.batlSimplecl.clSimpapp.nt(1)设置环境根据远程客户端的系统相关配置修改setenv.bat,注意WSNADDR要和服务器的一致:rem设置TUXEDO目录set TUXDIR=C:beatuxedo8.1rem设置WSN地址和端口set WSNADDR=192.168.222.1:8888rem设置TUXEDO应用程序目录set