测试环境:
weblogic:要6.1sp2以上,这儿使用的是weblogic server 7。0。
tuxedo:tuxedo7.0以上,此处用的是tuxedo8。0。
硬件:
tuxedo服务器:sun6500,soloaries操作系统。
Weblogic服务器:浪潮英信服务器300PR。CPU:2颗,主频:1g。内存:524m.
测试过程:
装好weblogic server7.0后,在E:\bea\weblogic700\samples\server\src\examples\wtc下,有关于wtc测试的源程序。
本次研究选择了两个例子作为测试:
1、 simpapp:功能是weblogic通过wtc调用tuxedo中的TOUPPER服务。
配置方面:
A:tuxedo配置:
Ubbconfig文件:
*RESOURCES
IPCKEY 234539
DOMAINID dmhnwgap
MASTER hnwgtest
MAXACCESSERS 600
MAXSERVERS 150
MAXSERVICES 6000
MODEL SHM
BLOCKTIME 24
LDBAL Y
NOTIFY SIGNAL
*MACHINES
DEFAULT:
APPDIR="/u1/tmn/testbin"
TUXCONFIG="/u1/tmn/testbin/tuxconfig"
TUXDIR="/u1/tuxedo/tuxedo8.0"
TLOGDEVICE ="/u1/tmn/testbin/TLOG"
TLOGNAME=TLOG
hndb LMID=hnwgtest
MAXWSCLIENTS=60
MAXCONV=20
*GROUPS
GROUP1
LMID=hnwgtest GRPNO=1 OPENINFO=NONE
GROUP2
LMID = hnwgtest GRPNO = 2 OPENINFO=NONE
TMSNAME=TMS TMSCOUNT=2
QUE1
LMID = hnwgtest GRPNO = 3
TMSNAME = TMS_QM TMSCOUNT =2
OPENINFO = "TUXEDO/QM:/u1/tmn/testbin/QUESPACE"
LDMGRP GRPNO=6 LMID=hnwgtest
LGWGRP GRPNO=7 LMID=hnwgtest
*SERVERS
DEFAULT:
CLOPT="-A"
almgr SRVGRP=GROUP1 SRVID=1 GRACE=0 RESTART=Y CONV=N MAXGEN=10
alarm_rec SRVGRP=GROUP2 SRVID=9 GRACE=0 RESTART=Y CONV=N MAXGEN=10
TMQUEUE
SRVGRP=QUE1 SRVID=1 GRACE=0 RESTART=Y CONV=N MAXGEN=10
CLOPT="-s QSPACE:TMQUEUE -- "
DMADM SRVGRP=LDMGRP SRVID=1 GRACE=0 RESTART=Y CONV=N MAXGEN=10
GWADM SRVGRP=LGWGRP SRVID=1 GRACE=0 RESTART=Y CONV=N MAXGEN=10
GWTDOMAIN SRVGRP=LGWGRP SRVID=2 GRACE=0 RESTART=Y CONV=N MAXGEN=10
WSL SRVGRP=GROUP1 SRVID=100
CLOPT="-A -- -n //hndb:9005 -d /dev/tcp -m1 -M10 -x5"
TMQFORWARD
SRVGRP=QUE1 SRVID= 16 GRACE=0 RESTART=Y CONV=N MAXGEN=10
CLOPT="-- -i 0 -n -q ALREC"
*SERVICES
TOUPPER
Dmconfig文件:
*DM_RESOURCES #域资源
VERSION=U22
*DM_LOCAL_DOMAINS
TDOM1 GWGRP=LGWGRP # equal GWTDOMAIN 's GROUP name
TYPE=TDOMAIN # for connecting between TUXEDOs system
DOMAINID="TDOM1" # equal ubbsimple's DOMAINID
BLOCKTIME=20
DMTLOGDEV="/u1/tmn/testbin/DMTLOG" # for global transaction mode
CONNECTION_POLICY=ON_STARTUP # for long connection
RETRY_INTERVAL=10
MAXRETRY=MAXLONG
*DM_REMOTE_DOMAINS
TDOM2 TYPE=TDOMAIN DOMAINID="TDOM2" #weblogic ip:port for fxy machine
TDOM3 TYPE=TDOMAIN DOMAINID="TDOM3" #weblogic ip:port for liwh machine
*DM_TDOMAIN
TDOM1 NWADDR="//10.154.32.1:7802" # local ip: port for mapinfo machine
TDOM2 NWADDR="//10.154.32.35:9999" # local ip: port for appserver mahcine
TDOM3 NWADDR="//10.154.32.12:9998" # local ip: port for appserver mahcine
*DM_LOCAL_SERVICES
TOUPPER #一定要将weblogic引用的资源再次声明,如服务、队列等信息
QSPACE
*DM_REMOTE_SERVICES
TOLOWER RDOM="TDOM2" #weblogic提供的ejb服务,供tuxedo本地调用
将tuxedo的这两个文件配置好后,进行如下操作:
1、 tmloadcf –y ubbconfig #装载tuxedo的bbl管理配置文件
2、 dmloadcf –y dmconfig #装载本地tuxedo服务器的域配置文件
3、 tboot –y
注:tuxedo的常用管理命令
tmunloadcf >liwh 将当前ubbconfig文件导入liwh文件
dmunloadcf>liwh 将当前dmconfig文件导入liwh文件
tmadmin:起动管理平台
>psr 察看当前服务组
>psc –g –I 察看指定服务
>tmshutdown –y
qmadmin:消息队列管理命令
>qopen QSPACE
>qinfo:察看所打开空间的信息。
>qspacecreate:创建空间
>qcreate:创建队列
dmadmin:域管理命令
>pd –d TDOM1 #察看和TDOM1相联接的域
>quit
上述为tuxedo方面的配置。
Weblogic方面的配置:
使用javac或ant命令编译simpapp/下面的程序,打包成simpapp.jar文件。
进入weblogic管理平台,展开ejb管理,部署simpapp.jar成功。
建立weblogic tuxedo connector的server.
配置信息如下:
<WTCServer Name="MyWTCServer" Targets="liwhserver">
<WTCImport LocalAccessPoint="TDOM3"
Name="WTCImport-1055574899843" RemoteAccessPointList="TDOM1"
RemoteName="TOUPPER" ResourceName="TOUPPER"/>
<WTCLocalTuxDom AccessPoint="TDOM3" AccessPointId="TDOM3"
NWAddr="//10.154.32.12:9998" Name="WTCLocalTuxDom-1055574838250"/>
<WTCRemoteTuxDom AccessPoint="TDOM1" AccessPointId="TDOM1"
LocalAccessPoint="TDOM3" NWAddr="//10.154.32.1:7802" Name="WTCRemoteTuxDom-1055574870890"/>
<WTCtBridgeGlobal
JndiFactory="weblogic.jndi.WLInitialContextFactory"
Name="WTCtBridgeGlobal-1055574926906" TuxFactory="tuxedo.services.TuxedoConnection"/>
</WTCServer>
注意:一定要配置“<WTCtBridgeGlobal
JndiFactory="weblogic.jndi.WLInitialContextFactory"
Name="WTCtBridgeGlobal-1055574926906" TuxFactory="tuxedo.services.TuxedoConnection"/>”
重新启动weblogic,到simpapp的应用程序路径下:
e:> bea\weblogic700\samples\server\src\examples\wtc\atmi\simpapp>setExamplesEnv.cmd
#设置环境变量
e:> bea\weblogic700\samples\server\src\examples\wtc\atmi\simpapp>run fdsfdsafds
程序执行成功,返回结果:
converted to: FDSFDSAFDS
2、 tbridge
功能是通过weblogic中的tbride监测tuxedo的消息队列,将tuxedo的消息队列里面的数据通过tbridge实时地传递到weblogic server中的jms server中的消息队列中去。
A:tuxido配置
两个文件和上面配置一样。
首先建立消息空间QSPACE:
qmadmin
.>qspacecreate QSPACE
>qcreate QALARM
利用SIMPCL客户端向消息队列加入消息。
B:WEBLOGIC配置
建立JMS SERVER:
<JMSServer Name="MyJMSServer">
<JMSQueue JNDIName="weblogic.jms.Jms2TuxQueue" Name="Jms2TuxQueue"/>
<JMSQueue JNDIName="weblogic.jms.Tux2JmsQueue"
Name="Tux2JmsQueue" StoreEnabled="true"/>
<JMSQueue JNDIName="weblogic.jms.tBerrorQueue" Name="tBerrorQueue"/>
</JMSServer>
建立WTCSERVER
<WTCServer Name="MyWTCServer" Targets="liwhserver">
<WTCImport LocalAccessPoint="TDOM3"
Name="WTCImport-1055574899843" RemoteAccessPointList="TDOM1"
RemoteName="TOUPPER" ResourceName="TOUPPER"/>
<WTCImport LocalAccessPoint="TDOM3"
Name="WTCImport-1055582665875" RemoteAccessPointList="TDOM1" ResourceName="QSPACE"/>
<WTCLocalTuxDom AccessPoint="TDOM3" AccessPointId="TDOM3"
NWAddr="//10.154.32.12:9998" Name="WTCLocalTuxDom-1055574838250"/>
<WTCRemoteTuxDom AccessPoint="TDOM1" AccessPointId="TDOM1"
LocalAccessPoint="TDOM3" NWAddr="//10.154.32.1:7802" Name="WTCRemoteTuxDom-1055574870890"/>
<WTCtBridgeGlobal JmsFactory="weblogic.jms.ConnectionFactory"
JndiFactory="weblogic.jndi.WLInitialContextFactory"
Name="WTCtBridgeGlobal-1055474376687" Retries="3"
TuxFactory="tuxedo.services.TuxedoConnection" WlsErrorDestination="weblogic.jms.tBerrorQueue"/>
<WTCtBridgeRedirect Direction="TuxQ2JmsQ" Name="redir1"
SourceAccessPoint="TDOM3" SourceName="QALARM"
SourceQspace="QSPACE" TargetName="weblogic.jms.Tux2JmsQueue" TranslateFML="NO"/>
</WTCServer>
注:weblogic7.0 server中,有一个bug,通过console配置WTCtBridgeRedirect后,会生成
<WTCtBridgeGlobal JmsFactory="weblogic.jms.ConnectionFactory"
JndiFactory="weblogic.jndi.WLInitialContextFactory"
Name="WTCtBridgeGlobal-1055474376687" Retries="3"
TuxFactory="tuxedo.services.TuxedoConnection" WlsErrorDestination="weblogic.jms.tBerrorQueue"/>
<WTCtBridgeRedirect Direction="TuxQ2JmsQ" Name="redir1"
SourceAccessPoint="TDOM3" SourceName="QALARM"
SourceQspace="QSPACE" TargetName="weblogic.jms.Tux2JmsQueue" TranslateFML="NO"/>
</WTCtBridgeGlobal>,必须手工将配置文件改成上面的格式才能使配置成功。
重新启动WEBLOGIC,观察,当TUXEDO每次压入一个消息,会在JMS的队列中出现