您的位置:首页 > 其它

配置WebLogic 集群—两台主机

2008-02-19 11:20 776 查看

配置WebLogic Server集群—两台主机

配置环境说明:bea weblogic8.1sp2,

1 预备知识

1.1 什么是Domain和Server

1.1.1 Domain

Domain是WebLogic Server实例的基本管理单元。所谓Domain就是,由配置为Administrator Server的WebLogic Server实例管理的逻辑单元,这个单元是有所有相关资源的集合。

1.1.2 Server

Server是一个相对独立的,为实现某些特定功能而结合在一起的单元。

1.2 Domain and Server的关系

一个Domain 可以包含一个或多个WebLogic Server实例,甚至是Server集群。一个Domain中有一个且只能有一个Server 担任管理Server的功能,其它的Server具体实现一个特定的逻辑功能。

1.3 配置集群应用的必要条件

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

1.4 实验环境

Ø 平台:Windows xp2
Ø 软件:Bea WebLogic Server 8.1 SP2
Ø 两台主机:A: 127.0.0.2 , B: 127.0.0.3

2 第一台主机配置

2.1 新建一个clusterdomain域

在domains建立了一个clusterdomain域,其中建立了一个admainserver的Server。

2.2 配置Managed Server

使用http://127.0.0.2:7002/console登录到管理界面点击左面的“Server”栏,然后选择右面的"Configure a new server",建立两个新managedServer, managedServer01如下:
Name: managedServer01
Listen Address:127.0.0.2
Listen Port:8001
按照前面的样子建立另一个新Server,,名字叫做managedServer02,注意这个managedserver时运行在B主机上。
Name: managedServer02—部署在主机B上
Listen Address:127.0.0.3—主机B的地址
Listen Port:8002

2.3 建立一个cluster

点击左面的“Cluster”栏,然后选择右面的"Configure a new cluster",建立一个新Cluster:mycluster

然后在右面有一个gap,名字叫做“Servers”,点击进入,然后把“Available”的managedServer01, managedServer02都"Chosen"了,就是把刚才定义的三个server都加入到cluster里面去。

2.4 再建立一个代理server

Name: proxyserver
Listen Address:127.0.0.2
port:9001
切忌这次不要把这个server加入到cluster里面去。

2.5 建立域之间的信任关系

由于managedServer是分别建在两台主机上部署的两个域中,所以要建立两台主机域之间的信任关系。
建立域之间的信任关系,是为了使一个 WebLogic Server 域的主题中的委托人作为另一个域的委托人被接受。启用此功能后,将通过 RMI 连接在 WebLogic Server 域之间传递标识,而无需在第二个域中进行身份验证(例如,以 Joe 的身份登录到域 1 中,当对域 2 进行 RMI 调用时,仍会对 Joe 进行身份验证)。
启用内部域信任后,事务可跨越域提交。当一个域的域凭据与另一个域的域凭据相匹配时,就会建立信任关系。
中文的资料说的不详细,按照以下英文说明就可以搞定
To establish a trust relationship between WebLogic Server domains:
1. In the left panel of the console, select the domain name at the top of the tree.
2. Select the Security-->Advanced tab.
3. Uncheck the Enable Generated Credential attribute.
4. Click the Change... link in the Credential attribute. 5.
5. Enter a password for the domain. Choose the password carefully. BEA Systems recommends using a combination of upper and lower case letters and numbers.
6. Confirm the password.
7. Click Apply.
8. Reboot WebLogic Server.

去掉默认的“Enable Generated Credential”选项,这里将A和B主机的credential密码设置成一样。

如果在启动在B主机的managedServer02服务时候报出如下异常:
Reason:weblogic.security.service.SecurityServiceRuntimeException: [Security:090411]Security Realm [myrealm] improperly configured - with nested exception:
[[Security:090519]The realm myrealm is not properly configured. Follow the directions in the following errors to correctly configure the realm.
[Security:090529]None of the deployable credential mappers in realm myrealm has deployments enabled. To correct the problem, enable deployments in one of the deployable credential mappers.]
解决方法:
1. 进入A主机weblogic console控制台,然后点击“Your Application's Security Settings”下的Realms选项

2. 进入Realms—>general选项,选中“Ignore Deploy Credential Mapping”,就OK了。

2.6 启动新建的managedServer01, proxyserver

以managedServer01为例,服务启动脚本如下:
c:
cd E:/bea/user_projects/domains/clusterdomain
E:
Call startManagedWebLogic.cmd managedServer01 http:// 127.0.0.2:7001

2.7 给cluster配置deploy web application

注意这里“Select targets for this Web application module ”时,不要选择“All servers in the cluster”选项,那样会部署不成功,具体原因我也不晓得。
这里我还是用我自己做测试的那个war文件,然后通过访问 http:// 127.0.0.2:8001/app http:// 127.0.0.3:8002/app
可以成功得到结果

2.8 配置proxyserver,让它支持HttpClusterServlet

在/tmp/下建立proxy的目录,然后再在/tmp/proxy下面建立一个WEB-INF的目录。
cd /tmp/proxy/WEB-INF
然后再建立如下两个文件

2.8.1 weblogic.xml

<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic
810-web-jar.dtd">
<weblogic-web-app>
<context-root>/</context-root>
</weblogic-web-app>

2.8.2 web.xml

<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>HttpClusterServlet</servlet-name>
<servlet-class>
weblogic.servlet.proxy.HttpClusterServlet
</servlet-class>
<init-param>
<param-name>WebLogicCluster</param-name>
<param-value>
127.0.0.2:8001|127.0.0.3:8002
</param-value>
</init-param>
</servlet>
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>GB2312</param-value>
</context-param>
<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>
记住:web.xml里面红颜色的部分,应该对应的你的系统里面managedServer01,跟managedServer02的IP和Port,中间用|分割。然后
cd /tmp/
jar -c0vf proxy.war proxy
把这个web application打包成proxy.war.
然后把proxy.war deploy到proxyserver上。

2.8.3 中文字符问题解决

当出现java的中文乱码问题时,需要根据具体情况来分析解决。在开发Portal内容管理程序中我们遇到了以下几种出现中文乱码的情况:页面内的中文字符、提交到数据库中的内容、在页面中显示的从数据库中读出的内容和页面之间通过URL传递的中文参数。通过实践和总结,有下面一种比较通用的简单解决方案,即在任何地方都使用GB2312字符集进行编码和解码,可以解决绝大多数中文乱码问题。
1. 在startweblogic.cmd 文件中添加如下代码(使程序编译时按gb2312编码):
%JAVA_OPTIONS% -Dfile.encoding=gb2312;
2. 修改weblogic.xml文件(使页面向服务器发送的内容按gb2312编码):
<jsp-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</jsp-param>
3. 修改web.xml文件(使页面之间通过URL方式传递的中文参数以gb2312进行编码):
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>gb2312</param-value>
</context-param>

3 第二台主机配置

3.1 新建一个clusterdomain域

在domains建立了一个clusterdomain域(域名名字最好和第一台主机一样),再建立了一个admainserver的Server。

3.2 配置Managed Server

建立一个managedServer运行在B主机上。要注意的是,“Managed Server”上的配置信息要与在A主机中Cluster所指定的配置信息一致。
Name: managedServer02—部署在主机B上
Listen Address:127.0.0.3—主机B的地址
Listen Port:8002

3.3 建立域之间的信任关系,B主机不用配置

参考A主机的“建立域之间的信任关系

3.4 启动新建的managedServer02

服务启动脚本如下:
c:
cd E:/bea/user_projects/domains/clusterdomain
E:
Call startManagedWebLogic.cmd managedServer02 http:// 127.0.0.2:7001
注意:红色部分这里是将managedServer02放到托管到主机A上的admainserver下

4 集群测试

现在访问http://localhost:9001/app怎么样?本来没有deploy到proxyserver上的应用也可以访问了吧。这就说明,cluster 已经配置成功了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: