- 浏览: 35141 次
- 性别:
- 来自: 北京
最新评论
声明:该博文转自http://maping930883.blogspot.com,热爱java,热爱生活
运行环境:WebLogic Server 10.3.5 + Oracle Database 10g Express Edition 10.2.0.1。
本实验要求首先完成《配置Data Source (2)》、《集群配置》和《为集群配置Apache代理》。
1. 把testds应用target到dizzyworldCluster上
2. 把dizzyworldDS target到dizzyworldCluster上
完成这两个步骤后,实现了如下设计:
但是这个设计有个问题:一旦dizzyworldDS出现了故障,或者HRDatabase出现了问题,应用和Data Source即使发布到了集群上,也无法继续访问数据库了
为了达到真正的Data Souce集群,设计上需要作如下改动:
(1)数据层应该有两个物理的数据库,这两个库之间的数据是同步的(使用数据库同步工具)。
(2)创建两个Data Source,分别指向这两个物理的数据库。
(3)创建一个Multi Data Source,包含这两个Data Source。
这样,应用中只需要使用一个Multi Data Source,无需关心使用的到底是哪个Data Source,哪个数据库。
最终的设计如下
我们按以下步骤验证我们的设计:
3. 访问http://localhost/testds
点击Test Data Source按钮,观察是哪个Server响应的这个请求。
发现dizzy2输出了如下信息,说明dizzy2响应了请求:
Looking up the dizzyworldDS data source.
Getting the connection from the database.
Querying the database.
4. 把dizzyworldDS暂停,模拟dizzyworldDS出现故障
5. 重新访问http://localhost/testds
点击Test Data Source按钮,出现如下异常:
Error 500--Internal Server Error
java.lang.AssertionError: Unexpected Exception:
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:273)
at jsp_servlet.__testdatasource._jspService(__testdatasource.java:122)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
原因分析:从原理上讲,部署在集群上的应用应该可以访问到部署到集群上的Data Source,但是由于本实验中的应用部署在本地的Server上,也就是说Data Source和应用都部署在本地的Server上。
在这种情况下,为了提高性能,本地的应用pinned to Data Source,因此Data Source出现故障后,本地应用也就无法访问了。
如果应用不是部署在本地,那么应该可以访问到部署到集群上的Data Source,因为远程的应用没有pinned to Data Source。(这个说法来自官方说明,我没有验证)
彻底解决这个问题的办法是使用Multi Data Source。
6. 创建Multi Data Source:dizzyworldMultiDS
具体设置如下:
Name: dizzyworldMultiDS
JNDI Name: dizzyworldMultiDS
Algorithm Type: Failover
Target: dizzyworldCluster
Driver: Non-XA Driver
Data Sources: dizzyworldDS, dizzyworldDS2
7. 重新访问http://localhost/testds
Data Source Name:dizzyworldMultiDS
点击Test Data Source按钮,我们发现,即使dizzyworldDS处于暂停状态,应用仍然可以访问:
运行环境:WebLogic Server 10.3.5 + Oracle Database 10g Express Edition 10.2.0.1。
本实验要求首先完成《配置Data Source (2)》、《集群配置》和《为集群配置Apache代理》。
1. 把testds应用target到dizzyworldCluster上
2. 把dizzyworldDS target到dizzyworldCluster上
完成这两个步骤后,实现了如下设计:
但是这个设计有个问题:一旦dizzyworldDS出现了故障,或者HRDatabase出现了问题,应用和Data Source即使发布到了集群上,也无法继续访问数据库了
为了达到真正的Data Souce集群,设计上需要作如下改动:
(1)数据层应该有两个物理的数据库,这两个库之间的数据是同步的(使用数据库同步工具)。
(2)创建两个Data Source,分别指向这两个物理的数据库。
(3)创建一个Multi Data Source,包含这两个Data Source。
这样,应用中只需要使用一个Multi Data Source,无需关心使用的到底是哪个Data Source,哪个数据库。
最终的设计如下
我们按以下步骤验证我们的设计:
3. 访问http://localhost/testds
点击Test Data Source按钮,观察是哪个Server响应的这个请求。
发现dizzy2输出了如下信息,说明dizzy2响应了请求:
Looking up the dizzyworldDS data source.
Getting the connection from the database.
Querying the database.
4. 把dizzyworldDS暂停,模拟dizzyworldDS出现故障
5. 重新访问http://localhost/testds
点击Test Data Source按钮,出现如下异常:
Error 500--Internal Server Error
java.lang.AssertionError: Unexpected Exception:
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:273)
at jsp_servlet.__testdatasource._jspService(__testdatasource.java:122)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:183)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3717)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
原因分析:从原理上讲,部署在集群上的应用应该可以访问到部署到集群上的Data Source,但是由于本实验中的应用部署在本地的Server上,也就是说Data Source和应用都部署在本地的Server上。
在这种情况下,为了提高性能,本地的应用pinned to Data Source,因此Data Source出现故障后,本地应用也就无法访问了。
如果应用不是部署在本地,那么应该可以访问到部署到集群上的Data Source,因为远程的应用没有pinned to Data Source。(这个说法来自官方说明,我没有验证)
彻底解决这个问题的办法是使用Multi Data Source。
6. 创建Multi Data Source:dizzyworldMultiDS
具体设置如下:
Name: dizzyworldMultiDS
JNDI Name: dizzyworldMultiDS
Algorithm Type: Failover
Target: dizzyworldCluster
Driver: Non-XA Driver
Data Sources: dizzyworldDS, dizzyworldDS2
7. 重新访问http://localhost/testds
Data Source Name:dizzyworldMultiDS
点击Test Data Source按钮,我们发现,即使dizzyworldDS处于暂停状态,应用仍然可以访问:
发表评论
-
WLS_046:常见故障之十四:Proxy Plug-in 问题
2013-02-25 14:00 749声明:该博文转自http://maping930883.blo ... -
WLS_042:常见故障之十:JMS Queue中的消息被“重复消费”问题
2013-02-25 13:58 1358声明:该博文转自http://maping930883.blo ... -
WLS_040:常见故障之八:JDBC Connection Pools
2013-02-25 13:56 1284声明:该博文转自http://maping930883.blo ... -
WLS_038:常见故障之六:Too many open files
2013-02-25 13:53 1054声明:该博文转自http://maping930883.blo ... -
常见故障之五:Out of Memory
2013-02-22 16:19 708声明:该博文转自http://maping930883.blo ... -
WLS_036:常见故障之四:Stack Overflow Error
2013-02-22 16:16 1062声明:该博文转自http://maping930883.blo ... -
WLS_035:常见故障之三:Server Hang
2013-02-22 16:14 804声明:该博文转自http:// ... -
WLS_034:常见故障之二:Server Crash后找不到Core Dump文件
2013-02-22 16:11 1002声明:该博文转自http://maping930883.blo ... -
WLS_033:常见故障之一:Server Crash
2013-02-22 16:10 879声明:该博文转自http:// ... -
WebLogic Server高级管理之四:为集群配置Apache代理
2012-07-31 21:55 978. 声明:该博文转自http://maping930883.b ... -
WebLogic Server高级管理之三:集群下的HTTP Session管理
2012-07-31 21:52 1481声明:该博文转自http:// ... -
WebLogic Server高级管理之二:为集群配置ProxyServer
2012-07-31 21:47 1410声明:该博文转自http://maping930883.blo ... -
WebLogic Server高级管理之二:为集群配置ProxyServer
2012-07-22 21:04 0声明:该博文转自热爱生活,热爱JAVA。原文地址为http:/ ... -
WebLogic Server高级管理之一:配置集群
2012-07-22 21:01 1008首先声明:该博文转自 ... -
WebLogic Server高级管理之六:集群下的JMS配置
2012-07-22 20:57 1192首先声明,该博文转自热爱生活,热爱JAVA,原文地址为http ... -
WebLogic Server高级管理之八:JMS 存储与转发
2012-07-22 20:37 1058提醒:weblogic系列博客均转载自千红一酷的博客,原地址为 ... -
WebLogic Server高级管理之七:JMS Topic 持久化订阅
2012-07-22 20:04 999运行环境:WebLogic Server 12.1.1 开发版 ...
相关推荐
Oracle Weblogic Server 11gR1 PS2: Administration Essentials
WebLogic Server 9.2 集群配置多服务器版.doc
配置WebLogic Server集群
Weblogic Server系列【高级篇】集群操作手册
如何在一台服务器上配置WebLogic Server 9.2的集群.
WebLogic Server 9.2 集群配置多服务器版 图解详细的介绍了如何安装weblogic server 9.2多服务器版的集群。
3.1. 集群定义 一个集群就是一组协同工作的WebLogic服务器实例。 集群提供:高可用性、负载均衡、扩展性。 集群图示:图2、图3都是集群在应用环境中的示例。
aix下配置weblogic集群 aix下配置weblogic集群 aix下配置weblogic集群 aix下配置weblogic集群 aix下配置weblogic集群
Oracle WebLogic Server 10g R3: Troubleshooting Methodologies Duration: 3 Days What you will learn This course teaches the steps to identify the symptoms and causes of the issues, the method of ...
weblogic安装 集群配置 数据源配置
比较 精点的配置WebLogic Server集群
WebLogic 集群中SSL 配置说明。WebLogic 集群中SSL 配置说明
教程名称: Weblogic安装、配置、优化、集群教程大全【】BEA WebLogic管理员手册【】java实现自定义Weblogic监控【】Oracle weblogic Server 11 g R1【】RHEL5.4 ORACLE11G WEBLOGIC10.3集群安装部署手册【】...
配置WebLogic_Server_11g_集群、Session复制(Windows)
在2台PC机上做实验,用Apache做代理Server,实现会话接管(Session复制),附带例子(一个是简单的jsp和Session接管的,一个是连接数据库的,这个主要是对集群做压力测试时用的例子)。 我花了很长时间写的配置过程,所以加了...