dev2dev 首页 > 资源中心 > 技术文章
Tuxedo 和WebLogic Server的集群连接
技术架构要求
某业务系统需要将Tuxedo和WebLogic server进行集群连接,以提高系统的整体的运行稳定性和可靠性。
Tuxedo 和WebLogic Server(简称WLS)间的集群配置
Tuxedo域概念的说明
为了有效实现有其他系统的互连,TUXEDO提出了DOMAIN(域)的概念,将由多台服务器共同组成的应用系统按功能或结构划分为不同的域,每个域独立地完成域内的操作,域间操作由域网关完成,从而提高每个域和整个系统的运行效率。
TUXEDO的域特性把客户/服务器模型扩展到多个应用系统. 一个域既可以是一组TUXEDO的应用程序——若干相关的应用服务和配置环境的组合。域同时也可能是一组运行在另一个非TUXEDO环境中的应用程序。 TUXEDO和WLS应用系统的互操作就是利用域的概念来实现的。
不同的 TUXEDO应用域中的服务程序可以互相访问对方的服务,并且当一个交易同时执行多个应用域中的服务(即对于分布式事务处理)时,能够确保交易的完整性。同时,TUXEDO系统可以指定哪些服务是可供外部应用域访问的并可为这些服务设置访问控制表等安全认证手段,提高整个系统的安全性。
TUXEDO应用系统
一个TUXEDO应用系统是由在一个TUXCONFIG文件中定义的资源及其客户端的总称,它只能有一个TUXCONFIG文件,一个TUXEDO应用系统能够通过域网关与别的TUXEDO应用系统或其他的应用中间件系统实现互操作。
主要概念说明:
TUXEDO Domain :一个TUXEDO应用系统就是一个DOMAIN。
/DOMAIN:TUXEDO产品的组成部分,用于与其他系统实现互连的那部分称为/DOMAIN
Domain Gateway :一个用于处理DOMAIN之间请求/应答的进程
Domain Gateway Group :一组用于处理DOMAIN之间通讯的进程总称,包括一个GWADM和一个DOMAIN GATEWAY(如:GWTDOMAIN
Local Domain :一个TUXEDO应用系统中的SERVICE的一个子集,它们能够被其他的DOMAIN访问,一个Local Domain对应一个domain gateway group 。
Local Service :LOCAL DOMAIN中能够被REMOTE DOMAIN访问的SERVICE称为Local Service
Remote Domain :LOCAL DOMAIN能够通过DOMAIN GATEWAY GROUP进行访问的一个应用系统,它可能是一个TUXEDO应用系统,也可能是IBM大机上的应用系统(如CICS等),也可以是JAVA应用服务器WEBLOGIC。
Remote Service :REMOTE DOMAIN中能够被LOCAL DOMAIN访问的SERVICE称为Remote Service
LOCAL DOMAIN与REMOTE DOMAIN可以在同一台服务器上,也可以在不同的服务器上,既:一台服务器上可以有一个或多个DOMAINS, DOMAIN的配置都在一个叫DOMCONFIG的文本文件中,可以用文本编辑该文本文件,并用dmloadcf把它编译成二进制文件BDMCONFIG。一个TUXEDO /DOMAIN只有一个DBMCONFIG文件.
在TUXCONFIG中必须定义以下的SERVER:
DMADM(DOMAIN ADMINISTRATOR SERVER)
管理DOMAIN的SERVER,在运行时管理该DOMAIN的配置,DMADM主要有以下作用:
1.在运行时管理BDMCONFIG,可对DOMAIN进行动态配置
2.维护DBMCONFIG
3.对已登记的GATEWAY GROUP提供支持
如果在运行时,BDMCONFIG发生改变,DMADM会通知已登记的GATEWAY GROUP。在一个TUXEDO系统中,只能有一个DMADM进程,不能对它采用MSSQ,并且它不能有REPLYQ, REPLYQ 要设为REPLYQ=N
GWADM(GATEWAY ADMINISTRATOR SERVER)
管理DOMAIN的域网关进程(在/DOMAIN中是GWTDOMAIN)的SERVER,在运行时可以对某一组域网关(domain gateway group) 进行管理.它主要的作用是从DMADM那里取的DOMAIN的配置信息,并对域网关进程及跨DOMAIN的全局事务的LOG文件进行管理.
GWTDOMAIN(GATEWAY PROCESS)
处理DOMAIN之间的互操作,使LOCAL DOMAIN可以调用REMOTE DOMAIN上的SERVICE,REMOTE DOMAIN可以调用LOCAL DOMAIN上的SERVICE.如果GATEWAY的类型不是GWTDOMAIN,那么是别的进程而不是GWTDOMAIN进程在起这个作用.GMADM和GWTDOMAIN必须在同一个组中,该组称为GATEWAY GROUP或DOMAIN GATEWAY GROUP。在一个TUXEDO应用系统中可以有多个GMADM,GWTDOMAIN对,一个GROUP中只能有一对GMADM,GWTDOMAIN对,但在一个TUXEDO应用系统只能有一个DMADM,DMADM可以在任何一个组中,一个LOCAL DOMAIN可以和多个REMOTE DOMAIN实现互操作。
下面的通讯方式可以跨越DOMAIN
1. tpcall(),tpacall():LOCAL DOMAIN中的CLIENT可以用tpcall(),tpacall()调用一个在REMOTEDOMAIN中的SERVICE,
2. CONVERSATION通讯方式:LOCAL DOMAIN 可以和REMOTE DOMAIN通过CONVERSATION 方式进行通讯.通过在DBCONFIG的DM_REMOTE_SERVICE对一个SERVICE 设置CONN=Y来指明该REMOTE SERVICE支持CONVERSATION通讯方式.
- /Q通讯方式:在LOCAL DOMAIN中可以对在REMOTE DOMAIN中创建的QUEUE进行tpenqueue(),tpdequeue()操作
TUXEDO DOMAIN的配置
一个DOMAIN的配置都在一个叫DOMCONFIG的文本文件中,可以用文本编辑该文本文件,并用DMLOADCF 把它编译成二进制文件BDOMCONFIG。DOMCONFIG包括以下几个节:
| | |
| DM_LOCAL_DOMAINS
| 定义该LOCAL DOMAIN的DOMAIN ID(每个DOMAIND都有一个DOMAIN ID),并对该DOMAIN所包含的所有DOMAIN GATEWAY GROUP进行定义. 一个TUXEDO 应用系统(DOMAIN)可以对应多个DOMAIN GATEWAY GROUP,不同的DOMAIN GATEWAY GROUP可对应不同的DOMAIN GATEWAY 类型
|
| DM_REMOTE_DOMAINS |
定义可以被与DOMAIN中的CLIENT,SERVER进行互操作的REMOTE
DOMAIN,可以有多个REMOTE DOMAIN |
| DM_LOCAL_SERVICES |
定义LOCAL DOMAIN中可以被其他REMOTE DOMAIN访问的SERVICE |
| DM_REMOTE_SERVICES |
在这里配置LOCAL DOMAIN 中可以调用的REMOTE DOMAIN中的SERVICE. |
| DM_ROUTING |
在DOMAIN之间可以实现数据依赖路由(DDR),可以通过DDR把一个本地的请求路由到REMOTE DOMAIN上去,DOMAIN之间的DDR规则在DM_ROUTING中设置,DOMAIN GATEWAY通过在这里指定的规则把请求
发到相应的REMOTE DOMAIN中去 |
| DM_ACCESS_CONTROL |
为LOCAL SERVICE 设置访问控制表,定义那些REMOTE DOMAIN可以访问这些LOCAL SERVICE |
| DM_dmtype |
指定DOMAIN(也是DOMAIN GATEWAY)的类型,dmtype的值可以为OSITP, SNAX, TOPEND, 或 TDOMAIN.如果是DM_TDOMAIN,每一个REMOTE DOMAIN可以在这里对应多项,每项对应不同的IP地址,提高可靠性. |
Tuxedo 和WebLogic Server(简称WLS)间的配置
首先,tuxedo和WLS直接可以采用WTC的配置方式,建立域间调用方式。连接关系如下所示:

对于WTC需要配置如下信息:
| MBean 类型 |
描述 |
| WTCServer |
包含在 WebLogic Server 和 Tuxedo 之间进行连接时所需的互操作性特性的父 Mbean。请在使用管理控制台进行配置时定义您的 WTC 服务。 |
| WTCLocalTuxDom |
提供配置信息以便将可用的远程 Tuxedo 域连接到 WTC 服务。您必须至少配置一个 Tuxedo 访问点。请在使用管理控制台进行配置时定义您的本地 Tuxedo 访问点。 |
| WTCRemoteTuxDom |
提供配置信息以便将 WTC 服务连接到可用的远程 Tuxedo 域。您可以配置多个远程域。请在使用管理控制台进行配置时定义您的远程 Tuxedo 访问点。 |
| WTCExport |
提供由本地 Tuxedo 访问点导出的服务的相关信息。请在使用管理控制台进行配置时定义您的导出服务。 |
| WTCImport |
提供有关在远程域上导入并可用的服务的相关信息。请在使用管理控制台进行配置时定义您的导入服务。 |
| WTCResources |
指定域的全局字段表类、视图表类及应用程序密码。请在使用管理控制台进行配置时定义您的资源。 |
Tuxedo和WebLogic Server(简称WLS)集群的配置
为了提高WLS应用的可靠性,Tuxedo要和WLS建立集群关系,如下所示:
对于来自 Tuxedo 请求的负载平衡和故障转移可以依赖于 Tuxedo 域功能来实现。
负载平衡 :
有关 Tuxedo 环境负载平衡的详细信息,请参阅 Tuxedo Load Balancing。
以下是从 Tuxedo 到群集 WTC 进行负载平衡的示例 Tuxedo DMCONFIG。此配置的 WebLogic Server 群集中有三个节点。每个节点都有一个正确配置的 WebLogic Tuxedo Connector 实例,该实例提供 Tuxedo 客户端可以访问的导出服务。
*DM_IMPORT
TOUPPER LDOM=tuxedo_dom RDOM=WDOM1 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM2 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM3 LOAD=50
故障转移 :
以下是使用更复杂的配置的示例 Tuxedo DMCONFIG,该配置在 WebLogic Server 节点之间进行负载平衡,并说明 Tuxedo 故障转移功能。要启用域级故障转移/故障回复,必须使用设置为 On Startup 或 Incoming Only 的 Connection Policy 配置 Tuxedo 域。
*DM_IMPORT
TOUPPER LDOM=tuxedo_dom RDOM=WDOM1,WDOM2,WDOM3 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM2,WDOM3,WDOM1 LOAD=50
TOUPPER LDOM=tuxedo_dom RDOM=WDOM3,WDOM1,WDOM2 LOAD=50
配置过程:
- 首先创建WLS集群环境,包括两个被管理服务器:

- 部署集群应用到集群上,并对其进行激活:

- 为每一个WLS实例创建对应的WTC服务

分别创建两个WTC服务,指定到对应的被管理服务器上。

- 在WTC服务中创建本地接入点(作为连接本地WLS方)和远端接入点(连接Tuxedo方)
配置的本地接入点:

设定连接策略为On Startup方式,可以支持负载均衡功能:

远端接入点(Tuxedo方),配置两个Tuxedo远端域,提供冗余连接:

远端接入点(Tuxedo方),配置信息:

远端接入点(Tuxedo方)

- 导出本地服务――WLS EJB service,Tuxedo端可以调用此服务

- Tuxedo访问用户配置――需要按照远端域的名字,创建访问用户,否则会出现errpno=8,没有访问权限的错误。此点非常重要!

- Tuxedo其中一个域配置:
Tuxedo Domain Configuration:
*DM_RESOURCES
VERSION=U22
*DM_LOCAL_DOMAINS
TDOM1 GWGRP=GROUP2
TYPE=TDOMAIN
DOMAINID="TDOM1"
BLOCKTIME=20
MAXDATALEN=56
MAXRDOM=89
DMTLOGDEV="d:\bea8.16\tuxedo8.1/samples/wtc/simpserv/DMTLOG"
DMTLOGNAME="DMTLOG_TUXDOM"
*DM_REMOTE_DOMAINS
WDOM1 TYPE=TDOMAIN
DOMAINID="WDOM1"
WDOM2 TYPE=TDOMAIN
DOMAINID="WDOM2"
*DM_TDOMAIN
TDOM1 NWADDR="//10.130.1.33:20301"
WDOM1 NWADDR="//10.130.1.33:20401"
WDOM2 NWADDR="//10.130.1.33:20402"
*DM_IMPORT
TOLOWER LDOM=TDOM1 RDOM=WDOM1,WDOM2 LOAD=50
TOLOWER LDOM=TDOM1 RDOM=WDOM2,WDOM1 LOAD=50
- 使用Tuxedo客户端进行测试,可以得到访问结果:

WLS和Tuxedo集群的配置
对于来自WLS的请求,可以和tuxedo建立跨域的集群配置,如下所示:

- WTC配置和上面相同,增加的是将Tuxedo服务要导入进来(注意要将多个可以连接的远端域在Remote Access Point上指定,这样可以确保通过WTC实现容错调用):
WTC1 上的import service:

使用JAVA 访问,可以访问到Tuxedo提供的服务:

- 对于WebLogic Server 调用Tuxedo多域的服务负载均衡和容错说明:
对访问Tuxedo多域的负载均衡,有两种实现策略:
方式一,在WTC,通过配置多个同名导入服务来实现。WLS端基于负载均衡策略,调用同名服务。这样实现对Tuxedo服务的负载均衡调用。
<wtc-import>
<name>imp0</name>
<resource-name>TOUPPER</resource-name>
<local-access-point>WDOM1</local-access-point>
<remote-access-point-list>TDOM1,TDOM2</remote-access-point-list> <remote-name>TOUPPER</remote-name>
</wtc-import>
<wtc-import>
<name>imp1</name>
<resource-name>TOUPPER</resource-name>
<local-access-point>WDOM1</local-access-point>
<name>2ndImportedResources</name>
<remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
<remote-name>TOUPPER</remote-name>
</wtc-import>
方式二,可以通过其在WebLogic Server端部署的EJB程序来实现的。EJB作为tuxedo的接入服务,在WTC程序采用集群方式部署,EJB客户端可以采用负载均衡的方式调用EJB。
此种方式,对应在WTC中的配置,就是:
WTC1 上的导入服务为:
<wtc-import>
<name>imp0</name>
<resource-name>TOUPPER</resource-name>
<local-access-point>WDOM1</local-access-point>
<name>2ndImportedResources</name>
<remote-access-point-list>TDOM1,TDOM2</remote-access-point-list>
<remote-name>TOUPPER</remote-name>
</wtc-import>
WTC2上的导入服务为:
<wtc-import>
<name>imp0</name>
<resource-name>TOUPPER</resource-name>
<local-access-point>WDOM2</local-access-point>
<name>2ndImportedResources</name>
<remote-access-point-list>TDOM2,TDOM1</remote-access-point-list>
<remote-name>TOUPPER</remote-name>
</wtc-import>
访问 Tuxedo的容错功能是通过多个接入点列表来实现,如果访问第一个不成功,就顺延访问下一个。
<remote-access-point-list>TDOM1,TDOM2</remote-access-point-list>(容错的实现,指定多个远端接入点)
| 作者简介 |
 包力 |
dev2dev ID: libao, BEA系统中国有限公司技术顾问。 |
作者其它文章
|