- 浏览: 37609 次
- 性别:
- 来自: 北京
最新评论
声明:该博文转自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 815声明:该博文转自http://maping930883.blo ... -
WLS_042:常见故障之十:JMS Queue中的消息被“重复消费”问题
2013-02-25 13:58 1418声明:该博文转自http://maping930883.blo ... -
WLS_040:常见故障之八:JDBC Connection Pools
2013-02-25 13:56 1353声明:该博文转自http://maping930883.blo ... -
WLS_038:常见故障之六:Too many open files
2013-02-25 13:53 1145声明:该博文转自http://maping930883.blo ... -
常见故障之五:Out of Memory
2013-02-22 16:19 790声明:该博文转自http://maping930883.blo ... -
WLS_036:常见故障之四:Stack Overflow Error
2013-02-22 16:16 1116声明:该博文转自http://maping930883.blo ... -
WLS_035:常见故障之三:Server Hang
2013-02-22 16:14 870声明:该博文转自http:// ... -
WLS_034:常见故障之二:Server Crash后找不到Core Dump文件
2013-02-22 16:11 1067声明:该博文转自http://maping930883.blo ... -
WLS_033:常见故障之一:Server Crash
2013-02-22 16:10 931声明:该博文转自http:// ... -
WebLogic Server高级管理之四:为集群配置Apache代理
2012-07-31 21:55 1005. 声明:该博文转自http://maping930883.b ... -
WebLogic Server高级管理之三:集群下的HTTP Session管理
2012-07-31 21:52 1565声明:该博文转自http:// ... -
WebLogic Server高级管理之二:为集群配置ProxyServer
2012-07-31 21:47 1535声明:该博文转自http://maping930883.blo ... -
WebLogic Server高级管理之二:为集群配置ProxyServer
2012-07-22 21:04 0声明:该博文转自热爱生活,热爱JAVA。原文地址为http:/ ... -
WebLogic Server高级管理之一:配置集群
2012-07-22 21:01 1089首先声明:该博文转自 ... -
WebLogic Server高级管理之六:集群下的JMS配置
2012-07-22 20:57 1259首先声明,该博文转自热爱生活,热爱JAVA,原文地址为http ... -
WebLogic Server高级管理之八:JMS 存储与转发
2012-07-22 20:37 1133提醒:weblogic系列博客均转载自千红一酷的博客,原地址为 ... -
WebLogic Server高级管理之七:JMS Topic 持久化订阅
2012-07-22 20:04 1077运行环境:WebLogic Server 12.1.1 开发版 ...
相关推荐
本文将深入探讨WebLogic Server的配置和性能调优,以帮助管理员实现更高效、稳定的应用服务。 ### 1. 准备知识 #### 1.1 基本概念 在开始配置和调优之前,了解一些基本概念是必要的: - **Domain**:WebLogic ...
5. **Data Source**:数据源是连接到数据库的桥梁,WebLogic Server管理这些数据源,确保应用程序能安全高效地访问数据库。 6. **JMS(Java Message Service)**:WebLogic支持JMS,允许应用进行异步通信和消息传递...
- **数据源(Data Source)**:用于连接数据库的数据源配置。 - **安全设置**:包括用户、角色和权限的管理。 #### 三、域的创建与配置 1. **创建域**: - 使用WebLogic Server的工具`wlst.sh`(Linux/Mac)或`...
除了上述基础配置,还有一些高级配置选项,如集群配置、安全管理、监控与性能调优等,它们对于复杂的企业级部署至关重要: - **集群配置**:通过将多个WebLogic Server实例组织成一个集群,实现负载均衡、故障转移...
通过给定文件提供的“BEA WebLogic Server™ Configuration Reference Release 8.1”文档,我们不仅能够获得详细的配置指南,还能进一步探索WebLogic服务器的高级特性和最佳实践,为构建高效、可靠的企业级应用打下...
4. **JDBC Data Source**:提供数据库连接池,管理应用程序与数据库之间的连接,确保高效、安全的数据访问。 5. **JMS Resources**:Java消息服务资源,用于异步通信和消息传递。包括队列和主题,队列提供点对点...
#### 五、启动Weblogic集群 1. **创建启动认证信息** - 在`/data/weblogic/user_projects/domains/base_domain/servers/`目录下创建`security`子目录,并编写`boot.properties`文件以存储用户名和密码。 2. **启动...
Weblogic 安装部署手册涵盖了 Weblogic 项目部署、Oracle 数据库的用户创建和授权、Weblogic 集群的配置、SQL 语句支持、表空间的创建、应用的部署、WebLogic 环境及资源配置、登录管理控制台、配置计算机、创建受控...
WebLogic Server 是一款由甲骨文公司(Oracle)开发的基于Java EE(Java Platform, Enterprise Edition)的应用服务器,主要用于构建、部署和管理企业级应用程序。WebLogic 8 是该产品系列的一个版本,发布于2005年...
- 配置数据源(Data Source)以连接外部数据库。 - 部署应用程序至WebLogic服务器。 - 监控服务器性能指标。 - 配置安全性设置,如SSL/TLS证书。 - 调整服务器性能参数。 #### 五、扩展知识点 - **WebLogic与...
6. 完成向导后,可以在“BEA Products”目录下找到启动和管理WebLogic Server的快捷方式。 **二、WebLogic 10.3的配置** 1. **配置Domain**:使用配置向导创建并配置域,包括设置域路径、管理服务器等。 - 打开...
WebLogic是Oracle公司的一款企业级Java应用服务器,它提供了一个平台来部署、管理和运行Java EE应用程序。在长期未使用后,WebLogic控制台的登录密码可能会遗忘,这将导致无法正常访问和管理服务。本教程将详细介绍...