`
xbsunshine
  • 浏览: 10022 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

[转]使用WebLogic搭建企业应用需要注意的一些问题

 
阅读更多
以下提到的一些问题,是我在我们的企业应用中碰到的一些WebLogic方面的问题,现在整理出来,供大家参考,希望对大家在使用过程中能有所帮助,少走弯路,那就“善莫大焉”了!
WebLogic的连接池配置好以后,为什么Test不能通过?
这个问题可能是比较常见的问题,我们可能会有需要进入WebLogic的控制台测试当前配置的数据库连接池是否可用,也就是说,测试通过WebLogic是否能连接到数据库服务器上去。但是,明明WebLogic控制台中关于Connection Pool的页面上提供了一个Testing的功能,点击Testing就是不能测试成功。你也许会怀疑是数据库宕机了,其实不一定,也许可能是你的关于Connection Pool的配置没有设置正确。请打开控制台,在窗口的左边点击Services进入JDBC下的Connection Pools,然后点击你设置的连接池,窗口的右边出现了一些配置信息,点击Configuration下面的Connections,点击下面Advanced Options的SHOW链接,看看其中的Test Reserved Connections属性前面是否被选中,同时,确定最下面的Test Table Name是否正确(默认情况下都是访问Oracle的dual表,应该没有问题)。OK如果都没有问题,那可能就是连接池的基本设置有问题。基本设置有问题,就不详细讲解了吧!如果这些都没有问题,那就需要检查你的数据库服务器了,希望不要出现这种问题才好!
所以,一定要设置Test Reserved Connections才能使Connection Pool的Testing功能正常运作。
同时,关于连接池配置中的最大数量和最小数量的问题,据Bea的工程师介绍说,最好是把最小值最大值设置成一样。原因是WebLogic在给连接池分配连接或者回收多余的不需要的连接的时候,需要消耗部分系统资源。我最开始就听了Bea工程师的话,设置成都是50个连接。可是后来在RAC的应用中就发现了问题,这在下面的问题中会提到。(不听不行啊,人家毕竟是工程师,又在给我们解决问题,要是不按照他的要求来做,他就咬死了说是这个问题,我可承担不起这个责任!)
WebLogic如何连接Oracle RAC?
WebLogic8.1.3以前的版本都不支持连接Oracle的RAC应用,如果是WebLogic的以前的版本,企业应用又需要连接RAC,只能通过WebLogic的Cluster来实现,每一个Cluster的Client连接一个RAC的节点。这种方式是不能体现出Oracle RAC的在多个Oracle节点之间分摊负载的优势。
从WebLogic8.1.3版本之后,WebLogic开始支持连接Oracle的RAC,不过配置起来有点麻烦,具体的技术资料可以参考
http://e-docs.bea.com/wls/docs81/jdbc/oracle_rac.html.
举例说明:如果你通过两台机器安装Oracle的RAC,其中一台机器的节点sid名字叫db1,ip地址是10.1.1.1,另外一台节点的sid名字是db2,IP地址是10.1.1.2,对外提供的统一的sid名字是db,那么我们配置WebLogic的基于RAC的连接的服务器地址就是
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=10.1.1.2)(PORT=1521)))(FAILOVER=yes)(LOAD_BALANCE=yes)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=db)))
(这个,在Bea网站上提供的文档中的例子都是错误的!少了一个括号!害我为此花了一天的时间去找问题,我就奇了怪了,按照他们技术文档提供的内容一步一步来做都会错,TNND!)
注意设置WebLogic的Connection Pool的连接池大小的时候,一定要设置为能进行增减。也就是说不要设置连接池的Initial Capacity和Maximum Capacity为一样的数。这可能会导致出现两个Oracle的节点服务器,一个的CPU占用已经达到99%-100%,而另外一个服务器还是10%左右的情况。这个问题也曾经困扰我很长时间,按理说Oracle的RAC安装应该是没有问题,WebLogic配置也没有问题,为什么还会出现两个数据库服务器负载不均衡的现象呢?后来我分析了原因,可能的原因如下(仅供参考):
Oracle提供的JDBC驱动程序,在实现RAC的机制上估计采用了某种基于数据库服务器负载的算法,这样,Java应用通过JDBC访问数据库的时候,就能根据当前RAC节点服务器的负载进行评估,选择一个压力较小的数据库节点作为响应的服务器。但是,这里我们采用了WebLogic的连接池,大家都知道连接池的机制,就是初始化一大批的与数据库的连接,放在一起,然后在需要的时候,从中取出一个进行响应。假设这里我们Initial Capacity设置为50,Maximum Capacity也设置为50,那么在WebLogic启动的时候,它就会初始化50个数据库连接。因为WebLogic刚启动的时候,数据库的压力可能基本上不存在,两个Oracle的节点负载都非常小,那么,根据Oracle的JDBC的算法,很有可能是这些连接都连到一个RAC的节点上去了。当这50个连接都正常使用起来,数据库服务器压力增大,因为连接池不会回收和重新分配连接,所以数据库的压力都跑到一个RAC节点上去了,导致一个节点压力非常大,而另一个节点压力基本没有的怪现象。
我不知道我这个解释是不是最终正确的版本,但是我在我们的企业应用中,把相应的设置进行了处理以后(Initial Capacity设置为20,Maximum Capacity设置为50,Capacity Increment设置为5),就没有再出现过这个现象。我估计就是因为在数据库服务器访问用户增多压力大的时候,连接池能生产新的连接供连接池使用,新生产的连接根据压力情况,会连接到新的RAC节点上去,这样就分摊了负载。因为我是通过结论来推测原因的,没准推论过程不正确,但是结论却歪打正着,估计要气死一大批人了。
如何修改WebLogic的weblogic.kernel.default参数?
weblogic.kernel.default其实是一个WebLogic的核心参数,设置的值就是WebLogic用来响应客户端请求的线程数量。也就是说,一个用户登陆应用系统进行某操作,则WebLogic将从weblogic.kernel.default中分配一个线程给该用户。默认情况下,这个参数值是40。比如对大的企业应用,同一时间登陆操作系统的用户非常多,则40个线程就显得太少了。同时,如果你的应用程序设计得不好,造成很多操作速度非常慢,因为WebLogic要等待你一个操作完成之后,才进行线程的回收处理,如果同一时间有很多线程在执行非常慢的操作,这也会引起线程数量不够的问题。
具体的表现就是在WebLogic的控制台的myserver中的Monitoring页面下的Performance页面中,Queue Length显示不是等于0,图像可能是一个曲线。Queue Length这个参数的意义就是“在等待队列里的请求数”。正常情况下,应该是0,图像是一个水平的横线。也就是没有客户端的请求会等待,都能及时的得到系统的处理。
如果确认是因为用户过多的原因需要增大weblogic.kernel.default参数的值,我们怎么修改?
进入WebLogic控制台——左边窗口的mydomain——servers——点击myserver——Configuration——General——点击Advanced Options的Show链接——最下面的Configure Execute Queues 链接——weblogic.kernel.Default链接——Thread Count参数。的却是隐藏的比较深。修改Thread Count的值,然后重启WebLogic就可以生效了。
分享到:
评论

相关推荐

    Linux搭建WebLogic应用平台.pdf

    在Linux环境下搭建WebLogic应用平台,需要注意以下要点: - 确保Linux环境满足WebLogic Server的系统需求,包括硬件配置、软件依赖等。 - 安装Java Development Kit (JDK):WebLogic Server依赖于JDK运行,因此需要...

    搭建web工程,部署weblogic开发环境。

    WebLogic Server是由Oracle公司提供的一个企业级Java EE应用服务器,它为构建、部署和管理企业级应用程序提供了强大的支持。以下是对这个主题的详细阐述: 一、Web工程概述 Web工程通常指的是基于Web技术开发的应用...

    WebLogic+eclipse+oracle框架搭建

    本教程将详细阐述如何使用WebLogic服务器、Eclipse IDE以及Oracle数据库搭建一个完整的开发框架。 1. **安装WebLogic** WebLogic是Oracle公司提供的一个强大的Java EE应用服务器,它提供了开发、部署和管理分布式...

    WebLogic eclipse oracle框架搭建使用说明文档

    根据给定的文件信息,以下是对“WebLogic eclipse oracle框架搭建使用说明文档”中的关键知识点进行的详细解读和扩展: ### 一、安装WebLogic WebLogic是Oracle公司推出的一款功能强大的应用服务器,用于构建、...

    webLogic_10部署

    WebLogic Server是甲骨文公司开发的一个企业级Java EE应用服务器,广泛应用于大型分布式应用的部署、集成和管理。WebLogic 10是其众多版本中的一个,提供了对于Java EE 5规范的支持。WebLogic 10的部署涉及到一系列...

    Weblogic12C集群ForLinux图形安装报告.docx

    WebLogic Server是Oracle公司的一款企业级应用服务器,广泛用于构建、部署和管理企业级Java应用程序。以下是安装过程的关键环节。 ### 第一部分:软硬件现状与环境准备 在开始WebLogic Server 12C集群安装前,首先...

    WebLogic系统安装配置指南

    WebLogic是Oracle公司的一款企业级应用服务器,广泛用于部署和管理Java EE应用程序。 1. 系统需求与准备工作 在开始WebLogic的安装前,确保满足以下硬件和软件要求: - 操作系统:支持多种操作系统,如Windows、...

    weblogic12.1.3集群部署

    本文主要介绍如何在局域网环境中搭建WebLogic 12.1.3集群,并进行初步的应用部署。 #### 二、准备工作 1. **下载WebLogic 12c软件**:从Oracle官方网站获取`WLS Zip Distribution for Oracle WebLogic Server 12.1...

    red hat5下weblogic9.2安装配置

    在Red Hat 5操作系统上安装配置WebLogic Server 9.2是一个关键的过程,对于搭建Java EE应用程序服务器环境至关重要。WebLogic Server是Oracle公司提供的一个企业级应用服务器,用于部署和管理基于Java的应用程序。...

    WebLogic & MyEclipse 配置

    总之,WebLogic与MyEclipse的配置是一个综合性的过程,涉及服务器环境的搭建、项目的创建和管理、应用的部署以及调试等多个环节,这对于开发和维护基于Java EE的复杂企业级应用至关重要。理解并熟练掌握这些配置步骤...

    aix下weblogic的集群配置

    在AIX操作系统上配置WebLogic集群是一项复杂但关键的任务,因为WebLogic Server是Oracle公司提供的一个强大、可扩展的企业级Java应用服务器,而集群技术能够提高应用的可用性和可伸缩性。以下将详细介绍在AIX环境下...

    linux下weblogic新建domain

    WebLogic作为一款强大的Java应用服务器,提供了丰富的功能来支持复杂的企业应用。本文将详细介绍如何在Linux系统中通过命令行方式创建一个新的WebLogic Domain,并对关键步骤进行详细解释。 #### 二、准备工作 确保...

    weblogic9.1下配置JNDI数据源

    在企业级Java应用开发中,通过JNDI可以方便地管理和配置数据源等资源。本文将详细介绍在WebLogic 9.1环境下配置JNDI数据源的步骤,并结合实际操作中的常见问题提供解决方案。 #### 二、准备工作 在开始配置之前,...

    WebLogic10安装配置.txt

    WebLogic 10 是一款由 Oracle 提供的企业级 Java 应用服务器,它提供了高性能、高可用性及可扩展性的应用运行环境。本篇文章将详细介绍如何在 Windows 下安装配置 WebLogic 10 并与 MyEclipse 集成,以便进行开发...

    基于Solaris10 安装Weblogic并配置Cluster过程

    WebLogic Server是由Oracle公司提供的一个企业级Java EE应用服务器,它为开发和部署分布式Web应用程序提供了强大的平台。在Solaris 10上配置WebLogic集群能够实现高可用性和负载均衡,提高应用系统的性能和可靠性。 ...

    weblogic配置步骤

    WebLogic Server 是一款功能强大的企业级应用服务器,被广泛应用于构建和部署大型分布式应用程序。本文档将详细介绍如何在 Windows 和 Linux 系统上配置 WebLogic Domain 的过程,并提供一些额外的注意事项与建议。 ...

    weblogic集群步骤

    WebLogic Server是由Oracle公司提供的一个应用服务器,主要用于构建和部署企业级Java应用程序。WebLogic Server支持高可用性和可伸缩性,能够通过集群技术提高系统的稳定性和性能。 #### 二、WebLogic集群部署前...

Global site tag (gtag.js) - Google Analytics