Menghe

导航

WLI 7.0 Cluster 配置手册

WLI 7.0 Cluster 配置手册

体系结构


一、单层混合型的WLI Cluster

二、多层结构的WLI Cluster

在本次测试中,使用Weblogic Integration的HttpClusterServlet作为访问集群的HTTP代理

配置过程


一、 配置weblogic cluster的必要条件:

  • 集群中的所有WebLogic server必须位于同一个局域网内,并且必须是IP广播(UDP)可到达的
  • 集群中的所有Weblogic Server必须使用相同的版本,包括Service Pack
  • 集群中的WebLogic Server必须使用永久的静态IP地址。动态IP地址分配不能用于集群环境。如果服务器位于防火墙后面,而客户机位于防火墙外面,那么服务器必须有公共的静态IP地址,只有这样,客户端才能访问服务器。
  • 要以CLUSTER方式运行,必须有包含CLUSTER许可的LICENSE才行。

 

二、 集群环境下WebLogic Integration 资源的部署
  WLI以Weblogic Server为基础,是Weblogic Server的自然延伸。一个WLI domain可以有一个administration server和多个 managed servers,managed server可以配置成Cluster。
  WLI的资源(WLI本身的WEB、EJB及RAR应用),大多数可以部署到集群中的所有managed server,个别的只能部署给某个managed server,有些资源又必须部署到administration server上,具体情况如下:

BPM

Resource Group

 

Description
(Single Node/Clusterable)

 

Resource Name

 

Administration Console Navigation

 

bpm

-singleNode

BPM master components

(Single node)

 

WLI-BPM Plugin Manager

(wlpi-master-ejb.jar)

 

Deployments—>EJB

 

bpm

-clusterable

 

 

 

BPM components

(Clusterable)

 

WLI-BPM initialization

(bpm-init-ejb.jar)

 

Deployments—>EJB

 

WLI-BPM Server

(wlpi-ejb.jar)

 

Deployments—>EJB

 

WLI-BPM Event Processor MDBs

(wlpi-mdb-ejb.jar)

 

Deployments—>EJB

 

User-defined Event Processor MDBs

wlpi-mdb-xxx.jar

 

Deployments—>EJB

 

wlpiFactory

(com.bea.wlpi.

TopicConnectionFactory)

 

Services—>JMS—>

Connection Factories

 

wlpiQueueFactory

(com.bea.wlpi.

QueueConnectionFactory)

 

Services—>JMS—>

Connection Factories

 

TXDataSource

 

Services—>JDBC—>

Tx Data Sources

 


AI

Resource Group

 

Description
(Single Node/Clusterable)

 

Resource Name

 

Administration Console Navigation

 

AI

-admin

 

Application integration administration

(Single node: Administration Server)

 

WLI-AI RAR Upload

(wlai-admin.ear)

 

Deployments—>

Applications—>WLI-AI RAR Upload

 

 

AI-clusterable

 

 

 

 

 

 

 

 

Application integration components

(Clusterable)

 

WLI-AI Server

(wlai-server-ejb.jar)

Deployments—>EJB

 

Application View Management Console

(wlai.war)

 

Deployments—>Web Applications—>wlai

 

WLI-AI Event Processor

(wlai-eventprocessor

-ejb.jar)

 

Deployments—>EJB

 

WLI-AI Async Processor

(wlai-asyncprocessor

-ejb.jar)

 

Deployments—>EJB

 

WLI-AI BPM Plug-in

(wlai-plugin-ejb.jar)

 

Deployments—>EJB

 

WLI-AI BPM Plug-in Help

(wlai-plugin.war)

 

Deployments—>

Web Applications

 

WLAI_JMSConnection
Factory

 

Services—>JMS—>

Connection Factories

 

Adapter

Wlai

-event-yyy

 

 

Application integration event adapter

(Depends on the adapter)

 

yyyEventRouter

 

Deployments—>

Applications

—>yyyEventRouter

 

wlai-service-yyy

 

Application integration service adapter

(Depends on the adapter)

 

BEA . . . yyy . . . ADK_RAR

 

Deployments—>

Applications—> BEA . . . yyy . . . ADK_RAR

 

BEA . . . yyy . . . ADK_WEB

 

Deployments—>

Applications—> BEA . . . yyy . . . ADK_WEB

 


B2B

Resource Group

 

Description
(Single Node/Clusterable)

 

Resource Name

 

Administration Console Navigation

 

B2B

-singleNode

 

B2B integration administration

(Single node: Administration Server)

 

 

B2B console

(b2bconsole.war)

 

Deployments—>

Web Applications

 

WLI-B2B Startup

(b2b-startup.jar)

Note: Deployed to the administration server and the clustered managed servers.

 

Deployments—>EJB

 

B2B

-clusterable

 

 

B2B integration components

(Clusterable)

 

WLI-B2B Startup

(b2b-startup.jar)

 

Deployments—>EJB

 

WLCShutdown

 

Deployments—>

Startup & Shutdown

 

WLCHub.DS

 

Services—>JDBC—>

Tx Data Sources

 

TransportServlet

(b2b.war)

 

Deployments—>

Web Applications

 

WLI-B2B RN MDB

(b2b-rosettanet.jar)

 

Deployments—>EJB

 

WLI-B2B RN BPM Plug-in

(wlc-wlpi-plugin.jar)

 

Deployments—>EJB

WLI-B2B ebXML BPM Plug-in

(ebxml-bpm-plugin.jar)

 

Deployments—>EJB

 

 

RNQueueFactory

(com.bea.wli.b2b.rosettanet.

QueueConnectionFactory)

 

Services—>JMS—>

Connection Factories

 

B2BTopicFactory

(com.bea.wli.b2b.server.

TopicConnectionFactory)

 

Services—>JMS—>

Connection Factories

 


DI

Resource Group

 

Description
(Single Node/Clusterable)

 

Resource Name

 

Administration Console Navigation

 

 

 

DI

-clusterable

 

 

 

 

Data Integration components

(Clusterable)

 

 

WLI-DI BPM Plug-in

(wlxtpi.jar)

 

 

Deployments—>EJB

 

WLI-DI BPM Plug-in Help

(wlxtpi.war)

 

Deployments—>Web Applications

 


other

Resource Group

 

Description
(Single Node/Clusterable)

 

Resource Name

 

Administration Console Navigation

 

Wli

-clusterable

 

 

(Single node: Administration Server)

 

WLI-Repository (respository-ejb.jar)

 

Deployments—>EJB

 

WLI Error Listener (wli-errorlistener-

mdb.jar)

 

Deployments—>EJB

 

 

Mailsession

(wlpiMailSession)

 

Services—>Mail

Java mail sessions used for the BPM Send E-mail action.

 

JDBCConnectionPool

(wliPool)

 

Services—>JDBC—>

Connection Pools

Used for all database connections in WebLogic Integration.

 

注:Single node-该资源只能部署到某个managed server
Clusterable-该资源可以部署到cluster中的所有managed server。如果是多层形式的集群,需将web部署到web集群,将ejb和JDBC,JMS相关的资源部署到obj集群中
  以下这些资源必须部署到Administrator Server:

  • B2B Console (b2bconsole.war)
  • WLI-B2B Startup (b2b-startup.jar)
  • WLI-AI RAR Upload (wlai-admin.ear)
  • B2BTopic JMS Destination (com.bea.wli.b2b.server.B2BTopic)



Adapter的部署:WLI的adapter由service adapter、event adapter及Design time的一些应用和资源组成。 虽然这三个部分可以打成一个单一的EAR包,但它们的部署是独立的。其中event adapter只能部署到某个managed server上,而不是cluster中的所有managed server。

三、 集群环境下WebLogic Integration JMS资源的配置管理

(一)、JMS Connection Factories的发布
JMS Connection Factories的发布情况如下表:

Connection

Factories

Name

Targets
(Single Node/Clusterable)

 

Resource Name

(JNDI Name)

 

Administration Console Navigation

 

 

RNQueueFactory

 

Clusterable

 

Com.bea.wli.b2b.

Rosettanet

.QueueConnectionFactory

Services—>JMS—>

Connection Factories

WLAI_

JMSConnectionFactory

Clusterable

 

com.bea.wlai

.JMSConnectionFactory

Services—>JMS—>

Connection Factories

WLI_B2B_TopicFactory

Single node: Administration Server

com.bea.wli.b2b.server

.TopicConnectionFactory

Services—>JMS—>

Connection Factories

wlpiFactory

Clusterable

 

com.bea.wlpi

.TopicConnectionFactory

Services—>JMS—>

Connection Factories

wlpiQueueFactory

Clusterable

 

com.bea.wlpi

.QueueConnectionFactory

Services—>JMS—>

Connection Factories


(二)、JMS JDBC Stores

在通过Domain Configuration Wizard创建domain时,它会为domain中的每个server,创建一个JMS JDBC Stores。
如果你是在管理控制台上,自己手工创建的server,你必须为你创建的server创建一个JMS JDBC Stores。
(三)、JMS Servers and JMS Destinations
同样在通过Domain Configuration Wizard创建domain时,它会为domain中的每个server,创建一个JMS Server并创建相应的Destinations。
如果你是在管理控制台上,自己手工创建的server,那么你必须为创建的server创建一个JMS Server,其JMS Destinations相应信息如下表:

JMS Destinations

Distributed or Single

 

com.bea.wli.bpm.TimerQueue

 

Clusterable

 

com.bea.wli.bpm.EventQueue

 

Clusterable

 

com.bea.wli.bpm.ValidatingEventQueue

 

Clusterable

 

com.bea.wli.bpm.ErrorTopic

 

Clusterable

 

om.bea.wli.bpm.AuditTopic

 

Clusterable

 

com.bea.wli.bpm.NotifyTopic

 

Clusterable

 

com.bea.wlpi.EventTopic

 

Single managed server

 

com.bea.wli.b2b.server.B2BTopic

 

Administration server only

 

com.bea.b2b.OutboundQueue

 

Clusterable

 

com.bea.b2b.rosettanet.EncoderQueue

 

Clusterable

 

com.bea.wlai.ASYNC_REQUEST_QUEUE

 

Clusterable

 

com.bea.wlai.ASYNC_RESPONSE_QUEUE

 

Clusterable

com.bea.wlai.EVENT_QUEUE

 

Clusterable

com.bea.wlai.EVENT_TOPIC

 

Clusterable

 

com.bea.wli.FailedEventQueue

 

Clusterable

 


四、 HttpClusterServlet的部署

HttpClusterServlet通过一个WebLogic服务器代理对WebLogic集群中的其他服务器成员的HTTP请求, 同时HttpClusterServlet还为代理的HTTP请求提供负载平衡与容错处理。
HttpClusterServlet的部署,主要是servlet的声明和映射,并设置初始化参数,可以创建一个Web App,然后直接在web.xml中添加或在管理控制台上设置HttpClusterServlet的部署信息。最后将它发布给用来做代理的 Server,并将这个Web App设置为这个Server的Default WebApp。
Web.xml的配置可以参考下面:
<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>
weblogic.servlet.proxy.HttpClusterServlet
</servlet-class>
<init-param>
<param-name>defaultServers</param-name>
<param-value>
10.1.154.24:7003:7002|10.1.154.35:7003:7002 </param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.jsp</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.htm</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>HttpClusterServlet</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
</web-app>


五、 单层混合型Cluster的配置

配置的拓扑如下:用weblogic的HttpClusterServlet来做http的分发请求

(一)、利用Domain Configuration Wizard来创建domain和配置cluster
在Weblogic Platform7.0中利用Domain Configuration Wizard可以非常方便地创建一个domain并配置cluster,具体步骤如下:
1、 Choose a Domain Type and Name
可以根据自己应用的情况选择创建domain的类型,WLI有三种domain 类型
可供选择:BPM domain,EAI domain及WLI domain。
本次测试中我们选择创建WLI domain。
2、 Choose Server Type
选择创建"Admin Server with Clustered Managed Server(s)"。
3、 Choose Domain Location
指定一个目录来创建domain。
4、 Configure Clustered Servers
指定cluster中各个managed server的监听地址和端口,如下图:


5、 Configure Cluster
指定Cluster的名字,Cluster的组播地址和端口,以及Cluster地址,如下图:


Multicast Address的范围是:224.0.0.1---239.255.255.255,如果组播有问
题,Managed Server无法加入Cluster,可以通过运行utils.MulticastTest来检测组播是否正常工作。如:java utlis.MulticastTest -N webcluster -A 230.0.0.1
Cluster Address可以IP形式的如:10.1.154.24:8001,10,1.154.35:8001
也可以以DNS名字的形式表示如:digitalchina1,digitalchina2。
注:如果不是用DNS名字来描述cluster adderss,必须设置wlai.clusterFrontEndHostAndPort属性,以保证event router回调通讯的负载均衡和高可用。设置方法:进入管理控制台Domain_Name->Deployments->EJB->WLI-AI Server,点击"Edit EJB Descriptor",在打开的窗口中选择EJB Jar->Enterprise Beans->Sessions->WLAIStartup->Env Entries,然后添加一个wlai.clusterFrontEndHostAndPort,值为Cluster前端的监听IP和端口,在本次测试中为HttpClusterServlet代理所在server的监听IP和端口,如下图:


6、 Configure Standlone/Administrative Server
指定Administrative Server的名字,监听的IP和端口。
7、 Create Administrative User
指定用户名和密码。
8、 Configurate Database Mail Session
指定工作流程流通知的Email地址和Email主机

(二)、运行wliconfig进行WLI 数据库的一些相关配置

在命令行下运行domain下的wliconfig进行配置
在中文环境下运行wliconfig.cmd会抛出:java.util.MissingResourceException异常,这是因为WLI采用当 前JVM默认的区域设置,如果我们使用的是中文Windows操作系统,返回的Local是zh_CN,而WLI7.0中暂没有提供zh_CN的资源属性 文件,所以会抛出上述异常,可以用"chcp 437"来修改默认代码页,如下图:


(三)、WLI资源的配置
利用Domain Configuration Wizard创建WLI Cluster时,WLI已将其资源部署到cluster环境中,但有个别资源的部署需要修改:
1、在Cluster中WLI-BPM Plugin Manager,即wlpi-master-ejb.jar只能发布到Cluster中的某个managed server,而不是所有的managed server。
2、在Cluster中wlpiEvent(JNDI Name为com.bea.wlpi.EventTopic)这个JMS Topic只能发布到Cluster中的某个managed server,而不是所有的managed server。
3、Adapter中的event adapter即Event Router,只能发布到Cluster中的某个managed server,而不是所有的managed server。
4、将Connection Pool和Data Source发布到所有的Server,包括Admin Server。

具体请参照本技术问题记录的第二和第三部分或WLI的连机文档

(四)、CTAIS Frame及CTAIS应用的部署
1、Frame的安装
将"ctais" 这个文件夹(其包含了CTAIS Frame的所有资源),拷贝到所有机器上的相同路径下,如C:\bea702\ctais。
2、在admin server启动脚本添加classpath
如下图:

注:WLI也带了一个log4j的包,其版本为1.1.3,而CTAIS Frame用的log4j的版本为1.2.4,因此必须把Frame的classpath设置在classpath的第一位置,否则会有冲突。
3、修改各个managed server的启动脚本
同样必须把Frame的classpath设置在classpath的第一位置,否则会有冲突。

4、修改ctais\core\config.xml下的相关信息
在单层混合型cluster中,将distributing参数设置为false;将jndi_url参数设置为cluster Address,如:10.1.154.24:8001,10.1.154.35:8001;
在多层Cluster中将distributing参数设置为设置为true,将JNDI_URL设置为OBJ cluster的clustter adderss
5、创建Tx Data Source.
Name: jdbcctais
JNDI Name: jdbc.ctais
Pool Name: wliPool
6、部署启动类
Name: ctais
ClassName: ctais.core.web.StartUp
Arguments: config=c:\bea702\ctais\core\config.xml
7、EJB部署
将ctais中的EJB发布到cluster中,ejb与 cluster的相关设置都是在weblogic-ejb-jar.xml中进行设置。
Stateless SessionBean可保持一个可用的实例池,weblogic-ejb-jar.xml中有两个参数控制池的行为:
-<initial-beans-in-free-pool>标记实例池的初始容量
-<max-beans-in-free-pool>
Stateless SessionBean故障处理的方式取决于<stateless-bean-methods-are-idempotent >这个参数,如果所有业务方法都是idempotent,这个参数应设置为true,否则应设置为false。

关于EJB cluster的设置、负载均衡和容错的实现机制的详细情况请参考e-docs.bea.com:
http://e-docs.bea.com/wls/docs70/ejb/EJB_environment.html#1046391,
http://e-docs.bea.com/wls/docs70/cluster/

8、Web部署
   将ctais的web模块发布到cluster,并设置session 复制的方式。
   注:如果选择内存复制,不要选择memory,正确选项是replicated。

(五)、配置HttpClusterServlet代理
具体请参见本技术问题记录的HttpClusterServlet的部署

六、 多层结构的WLI Cluster的配置
(一)、利用Domain Configuration Wizard来创建domain和server

可以用"Domain Configuration Wizard"先创建一个cluster,然后在管理控制台再创建managed server,并配置另一个cluster。
也可以在"Choose Server Type"时选择"Admin Server and managed Servers"来创建Admin Server和managed Servers。然后在管理控制台上创建Cluster.

(二)、在管理控制台上配置Cluster
在管理控制台上进入Domain_Name->Clusters->Create a new Cluster来创建一个Cluster。如下图:
1、配置cluster的基本信息:cluster名字,cluster adderss及选择负载均衡的算法


2、配置Multicast

3、加入Server


(三)、WLI资源的部署和配置
与单层混合型Cluster不同的是你需要把Web应用部署到web Cluster,把EJB部署到obj Cluster
WebLogic Integration JMS资源的配置,请参照本技术问题记录的第三部分:集群环境下WebLogic Integration JMS资源的配置管理进行配置。

(四)、CTAIS Frame及CTAIS应用的部署
与单层混合型Cluster不同的是,在多层Cluster中需要将frame的config.xm中
的将distributing参数设置为true,将JNDI_URL设置为OBJ cluster的clustter adderss

(五)、配置HttpClusterServlet代理
具体请参见本技术问题记录的HttpClusterServlet的部署


七、 抛出java.sql.SQLException: Cannot set auto commit to "true" when in distributed transaction?
这是因为使用weblogic提供的JDBC驱动时,在处理分布式事务时必须将
Autocommit设置为false,Autocommit的设置情况如下:

Transaction Type

 

Autocommit Default

 

Change Default?

 

Result

 

Local transaction

 

true

 

yes

 

将其设为false可以提高性能

 

Distributed transaction

 

false

 

no

 

不能修改缺省值,如果将其设为true,将抛出SQLException


八、 启动server时抛出java.lang.IllegalArgumentException
这是因为:CTAIS Frame用的log4j的版本为1.2.4,而WLI也带了一个log4j的包,其版本为1.1.3,而,因此必须把Frame的classpath设置在classpath的第一位置,否则会有冲突。

九、 集群环境下Studio的访问
Server URL格式为Cluster address,可以是cluster中各个server的监听IP和端口,如:t3://host1,host2,host3:port,也可以用DNS名字。


十、 集群环境下的PROVIDER_URL
在集群环境下PROVIDER_URL的设置:
ht.put(Context.PROVIDER_URL,"t3://server1,server2:7001");

(也可以用IP地址和端口描述)

十一、 关于硬件负载均衡器
硬件负载均衡器在IP层而不是在命名层,可以克服DNS方法的弱点。同时硬件负载均衡器的性能要优于"软件形式"负载均衡。硬件负载平衡器用作集群代理。 客户机连接负载平衡器,经过路由分配,连接到集群中的一个服务器。负载平衡硬件可以跟踪每个服务器的"健康"状况。不会将请求发送给"不健康"的服务器; 它还可以利用负载信息做出负载平衡决策。BEA WebLogic Server支持目前市场上流行的大部分负载平衡硬件产品。值得指出的是,BEA WebLogic Server使用这些负载平衡产品不需额外编码。 详细信息请参考e-docs.bea.com及硬件负载均衡器产品说明。

posted on 2005-08-31 10:48  孟和  阅读(911)  评论(0编辑  收藏  举报