使用tuxedo组件/DOMAINS时,需要对管理配置作一些改变。在以下例子中,会创建一个独立的测试应用环境(DOMAINID是TEST),它可以读取/请求另一个应用的交易(ProdCust)的数据。
服务GWTDOMAIN(GWT)负责响应域间通讯。GWADM和DMADM是处理管理交易和域服务的管理服务。这些服务必须配置在UBBCONFIG文件中。配置信息必须在远程和本地应用环境中定义。
服务GWTDOMAIN通过TCP/IP协议与其他域进行通讯。物理上远程的域的应用位置是透明的。
服务GWTDOMAIN是双向的:可以处理远程域发来的请求也可以向远程域发出请求。
除UBBCONFIG外,配置/DOMAINS还需要一些信息。这些信息在DMCONFIG文件中。DMCONFIG的文本文件通过BDMCONFIG编译成二进制文件。
过程
第一步:UBBCONFIG应作相应改动
为/DOMAIN建立的新组应该和其他应用组隔离开。其一用于管理,其他是网关服务。
UBBCONFIG
*RESOURCES
IPCKEY 49152
MAXACCESSERS 2
MAXSERVERS 25
MASTER SITE1
MODEL SHM
*MACHINES
class2 LMID=SITE1
TUXDIR=”/usr/tuxedo”
APPDIR=”/usr/apps/atmapp”
TUXCONFIG=”/usr/apps/atmapp/atmapp.tux”
*GROUPS
LDMGRP LMID=SITE1 GRPNO=20
LGWGRP LMID=SITE1 GRPNO=30
#下一行用于‘prod’域
APP1 LMID=SITE1 GRPNO=10
*SERVERS
DMADM SRVGRP=LDMGRP SRVID=200
GWADM SRVGRP=LGWGRP SRVID=310
GWTDOMAIN SRVGRP=LGWGRP SRVID=320
#下一行用于‘prod’域
CUSTOMER CLOPT=”-A” SRVGRP=APP1(对应上面的group) SRVID=100
*SERVICES
#下一行用于‘prod’域
ProdCust
第二步:为域间请求创建DMCONFIG
下文的ASCII数据存在的文件一般称为DMCONFIG,由此生成的二进制格式文件称为BDMCONFIG。以下的DMCONFIG存在于“TEST“域,用来请求远程的”prod“域的”ProdCust“交易。
DMCONFIG on TEST DOMAIN
*DM_LOCAL_DOMAINS
test GWGRP=LGWGRP
TYPE=TDOMAIN
DOMAINID=”TEST”
DMTLOGDEV=”/usr/apps/atmapp/logs/DLOG”
*DM_REMOTE_DOMAINS
production TYPE=TDOMAIN
DOMAINID=”prod”
*DM_TDOMAIN
prod NWADDR=”//lcspn1:3070”
NWDEVICE=”/dev/xti/tcp”
TEST NWADDR=”//lcspn2:3070”
NWDEVICE=”/dev/xti/tcp”
*DM_REMOTE_SERVICES
ProdCust
*DM_LOCAL_SERVICES
第三步:创建DMCONFIG指定对域外提供的交易
下文的DMCONFIG位于域’prod’,该域将向其他域提供可调用交易:ProdCust。
域‘prod’上的DMCONFIG
#本地域信息
*DM_LOCAL_DOMAINS
#LMID
production GWGRP=LGWGRP
#域描述:TDOMAIN即TUXEDO DOMAINS
TYPE=TDOMAIN
#域的唯一标识符
DOMAINID=”prod”
#交易的日志
DMTLOGDEV=”/usr/apps/atmapp/logs/DLOG”
#远程域信息
*DM_REMOTE_DOMAINS
test TYPE=TDOMAIN
DOMAINID=”TEST”
*DM_TDOMAIN
#地址和设备名
prod NWADDR=”//lcspn1:3070”
NWDEVICE=”/dev/xti/tcp”
TEST NWADDR=”//lcspn2:3070”
NWDEVICE=”/dev/xti/tcp”
*DM_REMOTE_SERVICES
*DM_LOCAL_SERVICES
#远程域可以使用的交易
ProdCust
第四步:设定环境变量
/DOMAIN进程需要额外的环境变量去访问/DOMAINS配置信息
export BDMCONFIG=/usr/apps/atmapp/atmapp.bdm
第五步:编译ubbconfig
本过程是从两个域中相同的UBBCONFIG生成二进制文件TUXCONFIG。在本例中,UBBCONFIG的信息位于’ubbconfig’。
tmloadcf –y ubbconfig
第六步:编译dmconfig
本过程是创建二进制DOMAINS配置文件,BDMCONFIG,在两个域中相同;而两者都有的文件‘dmconfig’内容是不同的。
dmloadcf –y dmconfig
请教通过WTC方式Tuxedo单域(SHM)模式连接WebLogic 单域 Multi Server(可不集群)配置方面的问题.
Tuxedo单域(SHM)模式到WebLogic alone Server的WTC连接已经做好.但WebLogic Multi Server的模式的连接总感觉配置上有问题,可水品有限,没照出来,请LZ帮忙检查一下.
WebLogic cluster_domain 2个被管Server,部署2个应用:一个是普通的Web应用,用于调用跑在Tuxedo端的toUpper服务,一个是EJB应用,用于提供toLower服务,供Tuxedo端的客户端调用.
WebLogic Server端(192.168.1.21) Config.xml(有删减):
<Domain ConfigurationVersion="8.1.6.0" Name="cluster_domain">
<Cluster ClusterAddress="192.168.1.21:7003,192.168.1.218:7005"
MulticastAddress="237.0.0.1" MulticastPort="7777" Name="new_Cluster"/>
<Server ListenAddress="192.168.1.21" ListenPort="7001" Machine=""
Name="AdminServer" NativeIOEnabled="true"
ReliableDeliveryPolicy="RMDefaultPolicy" ServerVersion="8.1.6.0">
<SSL IdentityAndTrustLocations="KeyStores" Name="AdminServer"/>
</Server>
<Server Cluster="new_Cluster" ListenAddress="192.168.1.21"
ListenPort="7003" Machine="" Name="mServer1"
NativeIOEnabled="true" ServerVersion="8.1.6.0">
<ExecuteQueue Name="weblogic.kernel.Default"/>
<SSL IdentityAndTrustLocations="KeyStores" Name="mServer1"/>
</Server>
<Server Cluster="new_Cluster" ListenAddress="192.168.1.218"
ListenPort="7005" Machine="" Name="mServer2"
NativeIOEnabled="true" ServerVersion="8.1.6.0">
<ExecuteQueue Name="weblogic.kernel.Default"/>
<SSL IdentityAndTrustLocations="KeyStores" Name="mServer2"/>
</Server>
.....
<Application Name="toLowerEJB"
Path="D:\Install\WLS8.1\bea\user_projects\domains\cluster_domain\toLowerEJB"
StagedTargets="mServer2,mServer1" StagingMode="stage" TwoPhase="true">
<EJBComponent Name="toLowerEJB" Targets="mServer1,mServer2" URI="toLowerEJB.jar"/>
</Application>
<Application Name="wtc_wls_app"
Path="D:\Install\WLS8.1\bea\user_projects\domains\cluster_domain"
StagedTargets="mServer2,mServer1" StagingMode="stage" TwoPhase="true">
<WebAppComponent Name="wtc_wls_app" Targets="mServer1,mServer2" URI="wtc_wls_app"/>
</Application>
<WTCServer Name="WTC-mServer1" Targets="mServer1">
<WTCLocalTuxDom AccessPoint="WDOM1" AccessPointId="WDOM1"
ConnectionPolicy="ON_STARTUP" NWAddr="//192.168.1.21:5566" Name="WTCLocalTuxDom-1247753308453"/>
<WTCRemoteTuxDom AccessPoint="TDOM1" AccessPointId="TDOM1"
ConnectionPolicy="ON_STARTUP" LocalAccessPoint="WDOM1"
NWAddr="//192.168.1.218:1234" Name="WTCRemoteTuxDom-1247753358953"/>
<WTCExport EJBName="TOLOWER" LocalAccessPoint="WDOM1"
Name="WTCExport-1247753409406" RemoteName="WTCExport" ResourceName="TOLOWER"/>
<WTCImport LocalAccessPoint="WDOM1"
Name="WTCImport-1247753456250" RemoteAccessPointList="TDOM1"
RemoteName="WTCImport" ResourceName="TOUPPER"/>
</WTCServer>
<WTCServer Name="WTC-mServer2" Targets="mServer2">
<WTCLocalTuxDom AccessPoint="WDOM2" AccessPointId="WDOM2"
ConnectionPolicy="ON_STARTUP" NWAddr="//192.168.1.218:7788" Name="WTCLocalTuxDom-1247753507031"/>
<WTCRemoteTuxDom AccessPoint="TDOM1" AccessPointId="TDOM1"
ConnectionPolicy="ON_STARTUP" LocalAccessPoint="WDOM2"
NWAddr="//192.168.1.218:1234" Name="WTCRemoteTuxDom-1247753556594"/>
<WTCExport EJBName="TOLOWER" LocalAccessPoint="WDOM2"
Name="WTCExport-1247753597359" RemoteName="WTCExport" ResourceName="TOLOWER"/>
<WTCImport LocalAccessPoint="WDOM2"
Name="WTCImport-1247753652141" RemoteAccessPointList="TDOM1"
RemoteName="WTCImport" ResourceName="TOUPPER"/>
</WTCServer>
</Domain>
Tuxedo端(192.168.1.218)部署一个toUpper的C应用,还有一个调用Multi WebLogic Server提供的toLower服务.
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 <bracketed> items with the appropriate values.
*RESOURCES
IPCKEY 123456
DOMAINID simpapp
MASTER simple
MAXACCESSERS 20
MAXSERVERS 10
MAXSERVICES 20
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
"TDY218" LMID=simple
APPDIR="E:\wtc\simapp"
TUXCONFIG="E:\wtc\simapp\tuxconfig"
TUXDIR="E:\tux8.1\tuxedo8.1"
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
GROUP2
LMID=simple GRPNO=2 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
DMADM SRVGRP=GROUP2 SRVID=2
GWADM SRVGRP=GROUP2 SRVID=3
GWTDOMAIN SRVGRP=GROUP2 SRVID=4
*SERVICES
TOUPPER
domconfig配置文件:
*DM_RESOURCES
VERSION=U22
*DM_LOCAL_DOMAINS
TDOM1
GWGRP=GROUP2
TYPE=TDOMAIN
DOMAINID="TDOM1"
BLOCKTIME=20
MAXDATALEN=56
MAXRDOM=89
DMTLOGDEV="E:\wtc\simapp\TLOG"
AUDITLOG="E:\wtc\simapp\AUDITLOG"
DMTLOGNAME="DMTLOG_TUXDOM"
*DM_REMOTE_DOMAINS
WDOM1
TYPE=TDOMAIN
DOMAINID="WDOM1"
WDOM2
TYPE=TDOMAIN
DOMAINID="WDOM2"
*DM_TDOMAIN
TDOM1 NWADDR="//192.168.1.218:1234"
WDOM1 NWADDR="//192.168.1.21:5566"
WDOM2 NWADDR="//192.168.1.218:7788"
*DM_IMPORT
TOLOWER LDOM=TDOM1 RDOM=WDOM1,WDOM2 LOAD=50
TOLOWER LDOM=TDOM1 RDOM=WDOM2,WDOM1 LOAD=50
现在通过部署在WebLogic Server上的一个应用访问Tuxedo上TOUPPER服务,返回值为null.
在Tuxedo(192.168.1.218)端,通过toLOWER客户端访问跑在WebLogic Server上的toLOWER EJB服务,返回这样的错误:
E:\wtc\simapp>toLowerClient TDY218
Can't send request to service TOLOWER
Tperrno = 10
请LZ帮忙检查一下配置文件.
现在通过部署在WebLogic Server上的一个应用访问Tuxedo上TOUPPER服务,返回值为null.
在Tuxedo(192.168.1.218)端,通过toLOWER客户端访问跑在WebLogic Server上的toLOWER EJB服务,返回这样的错误:
E:\wtc\simapp>toLowerClient TDY218
Can't send request to service TOLOWER
Tperrno = 10
^^^^^^^^^^^^^^^^^
从配置看,没发现什么问题,你的配置是在WebLogic部分配置了两个网关,接入一个Tuxedo网关,在Tuxedo部分做两个网关的负载均发请求。
首先检查WebLogic和Tuxedo是否已经进行了Domain连接。
你提到的两个问题,
1.WebLogic-》Tuxedo时候,返回null。需要确认,是否调用到Tuxedo部分的TOUPPER服务,然后WebLogic这部分是否对对结果进行了合理处理。
2.Tuxedo->WebLogic,返回10 ,TPSVCERROR,一般指调用到了EJB,但EJB出现了执行错误,导致tpcall执行失败。检查ejb的日志。
10 TPESVCERR --- server error while handing request
又看了下(WebLogic)mServer1的日志,stdout和Server Log中均未发现问题,我又将mServer1的日志记录级别调整到Info级别,仍旧没发现,部署的应用应该没问题,因为我之前做的Tuxedo单域(SHM)模式到WebLogic alone Server的WTC连接都没问题.而且应用中也没有与IP及WTC访问点相关的代码.这里我将mServer1的Access日志和Tuxedo端ULOG日志贴出来:
Access Log:
192.168.1.21 - - [13/Aug/2009:18:39:31 +0800] "GET /toupper?letter=sdadad HTTP/1.1" 200 17
ULOG:
183931.TDY218!GWTDOMAIN.1112.1916.0: LIBGW_CAT:1029: ERROR: Service request not forwarded to remote site:"TPENOENT - no entry found" gwerrno(402017)
由于这个调用时间很短,所以使用pclt看不太方便,于是就在调用TOUPPER服务前,tmadmin->psr了一下,调用后又psr了一下:
之前:
> psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service
--------- ---------- -------- -- ------ --------- ---------------
BBL.exe 123456 simple 0 1 50 ( IDLE )
simpserv.exe 00001.00001 GROUP1 1 0 0 ( IDLE )
DMADM.exe 00002.00002 GROUP2 2 6 300 ( IDLE )
GWADM.exe 00002.00003 GROUP2 3 0 0 ( IDLE )
GWTDOMAIN.exe 00002.00004 GROUP2 4 0 0 ( IDLE )
之后:
> psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service
--------- ---------- -------- -- ------ --------- ---------------
BBL.exe 123456 simple 0 3 150 ( IDLE )
simpserv.exe 00001.00001 GROUP1 1 0 0 ( IDLE )
DMADM.exe 00002.00002 GROUP2 2 6 300 ( IDLE )
GWADM.exe 00002.00003 GROUP2 3 0 0 ( IDLE )
GWTDOMAIN.exe 00002.00004 GROUP2 4 0 0 ( IDLE )
> q
通过查看RqDone,感觉toUpper服务未被调用.
在Tuxedo端调用toLower服务时ULOG中未发现相同时间的日志信息.
--转自