`

Weblogic的JDBC详解(原创)

 
阅读更多

WebLogic Server 中的JDBC概述
在 WebLogic Server 中,您可以配置数据库连接,方法是先配置 JDBC 数据源和多数据源,然后将这些 JDBC 资源指定到或部署到 WebLogic 域中的服务器或群集。
您配置的每个数据源都包含一个在创建该数据源实例时(在对其进行部署或指定时或在服务器启动时)创建的数据库连接的缓冲池。应用程序会在 JNDI 树中或在本地应用程序上下文 (java:comp/env) 中查找数据源(具体取决于您如何配置和部署该对象),然后会请求一个数据库连接。完成该连接后,应用程序会调用 connection.close(),该方法会将该连接返回到数据源中的连接缓冲池。
下图为JDBC的连接架构

多数据源是一组数据源的提取,可提供与此多数据源相关联的各数据源之间的负载平衡或故障转移处理。就像数据源会绑定到 JNDI 树一样,多数据源会绑定到 JNDI 树或本地应用程序上下文。应用程序会在 JNDI 树中或在本地应用程序上下文 (java:comp/env) 中查找多数据源(就像这些应用程序查找数据源时一样),然后会请求一个数据库连接。多数据源会根据在多数据源配置中选择的算法(负载平衡或故障转移)确定要使用哪一个数据源来满足该请求。

JDBC 配置文件
WebLogic JDBC 配置存储在符合 weblogic-jdbc.xsd Schema(可在 http://www.bea.com/ns/weblogic/91/weblogic-jdbc.xsd 上找到)的 XML 文档中。可以将 JDBC 资源作为系统模块或应用程序模块进行创建或管理。JDBC 应用程序模块是 J2EE 模块的 WebLogic 特定扩展,可在 J2EE 应用程序中进行配置,或作为独立模块进行配置。
无论是正在使用 JDBC 系统模块还是正在使用 JDBC 应用程序模块,每个 JDBC 数据源或多数据源都是通过一个 XML 文件(一个模块)来表示的。
JDBC 系统模块
使用管理控制台或使用 WebLogic 脚本工具 (WLST) 创建 JDBC 资源(数据源或多数据源)时,WebLogic Server 会在域目录的 config/jdbc 子目录中创建一个 JDBC 模块,并在该域的 config.xml 文件中添加一个对该模块的引用。JDBC 模块符合 weblogic-jdbc.xsd Schema(可在 http://www.bea.com/ns/weblogic/91/weblogic-jdbc.xsd 上找到)。
以此方式配置的 JDBC 资源被视为系统模块。系统模块由某个管理员拥有,该管理员可随时删除、修改或添加相似的资源。系统模块可全局定位到域中配置的服务器和群集,因此可用于部署在同一目标上的所有应用程序,也可用于客户端应用程序。还可通过 JMX,将系统模块作为 JDBCSystemResourceMBeans 来访问。
数据源系统模块作为 JDBCSystemResource 元素包括在域的 config.xml 文件中,该元素包括 JDBC 模块文件的名称和该模块部署在其上的目标服务器和群集的列表。下图显示了一个示例,该示例描述了在 config.xml 文件中列出的数据源和该数据源映射到的模块。

在此图示中,config.xml 文件将 examples-demo 数据源作为 jdbc-system-resource 元素列出,该数据源映射到 domain\config\jdbc 文件夹中的 examples-demo.xml模块。
同样,多数据源系统模块作为 jdbc-system-resource 元素包括在域的 config.xml 文件中。多数据源模块包括了一个 data-source-list 参数,该参数可映射到该多数据源使用的数据源模块。config.xml 中还包括单独的数据源模块。下图显示了 config.xml 文件中的元素和 config/jdbc 目录中的系统模块之间的关系。

在此图示中,config.xml 文件列出了三个 JDBC 模块 - 一个多数据源和该多数据源使用的两个数据源,这些模块也在多数据源模块中列出。您的应用程序可在 JNDI 树中查找这些模块中的任何模块,并请求一个数据库连接。在您查找多数据源时,该多数据源会根据 data-source-list 参数中的数据源、列出这些数据源的顺序和在 algorithm-type 参数中指定的算法,确定要使用其他数据源中的哪一个数据源来提供数据库连接。

故障转移和 JDBC 连接
JDBC 是一个高度有状态客户端 DBMS 协议,在此协议中,DBMS 连接和事务状态直接与 DBMS 过程和客户端(驱动程序)之间的套接口相连。因此,连接的故障转移不受支持。如果 WebLogic Server 实例异常中止,它所管理的任何 JDBC 连接也都将异常中止,并且 DBMS 将回滚已经完成的任何事务。受影响的任何应用程序都必须完全重新启动其当前事务。与异常中止的连接相关联的所有 JDBC 对象也会被废除。群集的 JDBC 简化了重新连接过程:如果承载以前连接的服务器实例失败,外部客户端应用程序中 WebLogic 数据源可以识别群集的特性则使得客户端能够从中请求另一个连接。
如果您进行了复制并同步了数据实例,则可以使用 JDBC 多数据源来支持数据库故障转移。在这种环境中,如果因为多数据源中的一个数据源不存在或因为从该数据源进行的数据库连接已经关闭,客户端无法从该数据源获取连接,WebLogic Server 则会尝试从数据源列表中的下一个数据源获取连接。
有关群集 JDBC 对象的说明,请参阅配置群集的 JDBC。
注意:分配到多数据源的任何数据源都必须配置为在保留时间测试其连接。这是缓冲池可以验证它具有正常连接的唯一方式,也是多数据源可以了解何时故障转移到列表中下一个缓冲池的唯一方式。

与Oracle性能相关的连接属性
BatchPerformanceWorkaround
驱动程序可使用符合 JDBC 3.0 标准的批处理机制或本地 Oracle 批处理机制执行批处理操作。如果应用程序不使用更新计数信息,则使用本地 Oracle 批处理环境可提高性能。符合 JDBC 3.0 标准的机制根据 JDBC 3.0 规范的要求,为批处理中的每个语句或参数集返回单个更新计数。本地 Oracle 批处理机制不为设置在批处理中的每个语句或参数返回单个更新计数。因此,当使用本地 Oracle 批处理机制时,驱动程序返回在返回更新计数数组中的 SUCCESS_NO_INFO (-2) 值。
CatalogOptions
Oracle 检索同义词和备注信息是十分昂贵的。如果应用程序不需要返回此信息,则驱动程序可提高性能。标准 JDBC 行为是将同义词包含在调用下列 DatabaseMetaData 方法的结果集中:getColumns()、getProcedures()、getProcedureColumns() 和 getIndexInfo()。除此之外,驱动程序可将备注信息包含在调用下列 DatabaseMetaData 方法的结果集中:getTables() 和 getColumns()。
InsensitiveResultSetBufferSize
要想在使用滚动不敏感结果集时提高性能,驱动程序可将结果集数据缓存到内存而不是写入磁盘。默认情况下,驱动程序会将 2 MB 的不敏感结果集数据缓存到内存,而把剩余的结果集数据写入磁盘。在将数据写入磁盘前增加驱动程序使用的内存量,或强制驱动程序始终不将不敏感结果集数据写入磁盘,可提高性能。最大缓存大小的设置是 2 GB。
MaxPooledStatements
为了提高性能,在驱动程序不在应用服务器或不提供其自己的预处理语句缓冲池的其他应用程序中运行时,应启用驱动程序自己内部的预处理语句缓冲池。当启用驱动程序内部的预处理语句缓冲池时,驱动程序会缓存一定数量的由应用程序创建的预处理语句。例如,如果将 MaxPooledStatements 属性设置为 20,则驱动程序会缓存应用程序创建的最新的 20 预处理语句。如果此属性的设置值大于应用程序使用的预处理语句个数,则会缓存所有预处理语句。
ResultSetMetaDataOptions
默认情况下,调用 ResultSetMetaData.getTableName() 方法时,Oracle 驱动程序会忽略为结果集中的每列返回正确表名所需的其他处理。因此,getTableName() 方法可能为结果集中的每列返回一个空字符串。如果知道应用程序不需要表名信息,则此设置会提供最佳性能。
ServerType
使用专用服务器连接时,创建的 UNIX 上的服务器进程(Windows 上的线程)仅服务于该应用程序连接。断开连接时,进程就消失了。在应用程序和专用服务器进程间直接建立套接口连接。这将大大提高性能,但却使用的 UNIX 服务器资源却显著增加。因为是运行在 Windows 平台上的 Oracle 服务器线程,所以服务器上其他资源的使用会大大减少。当有批处理环境但却有很少的连接,Oracle 服务器在最大负载的情况下仍有额外的处理容量和可使用的内存时,或者如果有一个对平台比较敏感的应用程序,与其他应用程序共享 Oracle 资源会降低其性能时,应该将 ServerType 属性设置为专用。
WireProtocolMode
如果通常返回的数据在连续行中有重复,比如,列1/行1 中的数据与列1/行2 中的数据相同,则驱动程序可以提高性能。
关于Oracle连接的其他属性可参见
http://edocs.weblogicfans.net/wls/docs92/jdbc_drivers/oracle.html

关于如何创建JDBC连接可参见
http://edocs.weblogicfans.net/wls/docs92/ConsoleHelp/taskhelp/jdbc/jdbc_datasources/CreateDataSources.html

参考至:http://edocs.weblogicfans.net/wls/docs92/jdbc_drivers/oracle.html
             http://edocs.weblogicfans.net/wls/docs92/cluster/failover.html#wp1030488
             http://edocs.weblogicfans.net/wls/docs92/ConsoleHelp/taskhelp/jdbc/jdbc_datasources/CreateDataSources.html

             http://edocs.weblogicfans.net/wls/docs92/jdbc_admin/config.html

本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com

1
4
分享到:
评论

相关推荐

    WebLogic技术全面详解

    WebLogic技术全面详解 WebLogic是Oracle公司的一款企业级Java EE(现在称为Java EE或Jakarta EE)应用服务器,主要用于构建、部署和管理基于Java的分布式应用程序。它为开发人员提供了一个集成的环境来开发、测试和...

    关于Weblogic 9/10 中JDBC优化和监控的那点事

    ### Weblogic 9/10 中 JDBC 优化与监控详解 #### 一、引言 在Weblogic服务器中,除了处理程序本身的错误之外,我们还需要关注如何优化和监控JDBC性能,这对于提升整个系统的响应速度和稳定性至关重要。本文将详细...

    Weblogic使用手册大全详解 中文版

    1.WEBLOGIC服务器管理概述 ...15.管理JDBC连接 16.管理JMS 17.管理JNDI 18.管理WEBLOGIC J2EE连接器架构 19.管理WEBLOGIC服务器许可证 使用WEBLOGIC JAVA工具 WEBLOGIC服务器的命令行接口参考 WEB服务器插件的参数

    weblogic部署详解

    【WebLogic部署详解】 WebLogic Server是Oracle公司提供的一个企业级Java EE应用服务器,它提供了多种部署J2EE应用程序的方法。本文将详细讲解如何通过WebLogic Server管理控制台进行手动部署,包括本地部署、远程...

    weblogic实战详解

    本篇文章将深入探讨WebLogic的实战详解,包括详细安装过程、参数维护以及调优策略。 首先,让我们从WebLogic的安装开始。安装WebLogic Server通常涉及以下几个步骤: 1. 下载WebLogic Server的安装包,可以从...

    MSSQL 2008 连接java jdbc详解

    这需要在应用服务器(如Tomcat或WebLogic)中配置数据源,然后通过名字查找来获取连接。在Java代码中,你可以这样做: ```java Context initialContext = new InitialContext(); DataSource dataSource = ...

    Weblogic使用手册大全详解(中文).rar

    以上只是WebLogic使用手册中部分关键知识点的概述,具体操作和深入技术细节需要查阅详细的《Weblogic使用手册大全详解(中文)》PDF文档以获取更全面的信息。通过学习和实践,你可以更好地驾驭这个强大的企业级应用...

    weblogic 错误信息详解

    - **BEA-130013**: 表示JDBC数据源连接失败,需要检查数据源配置、数据库连接信息和数据库状态。 6. **诊断工具** WebLogic提供了一些内置的诊断工具,如JMX Console、WLST(WebLogic Scripting Tool)和JConsole...

    weblogic详细部署及介绍

    #### 三、部署步骤详解 本章节将根据提供的部分内容,结合 WebLogic Server 的实际部署经验,给出详细的部署步骤。 ##### 1. 安装前准备 - **系统要求**:确保目标操作系统满足 WebLogic Server 的最低硬件和软件...

    Weblogic使用手册大全详解(中文).pdf

    ### WebLogic服务器管理概述 #### 一、服务器管理概述 WebLogic Server 是一款高性能的中间件产品,提供了丰富的管理功能来支持企业的应用部署与管理。本章节主要介绍WebLogic服务器的基本概念及其管理方面的一些...

    weblogic初级配置详解

    - **资源管理**:理解如何配置JDBC数据源、JMS队列和主题,以及EJB等企业级资源。 - **集群配置**:如果需要高可用性和负载均衡,需要配置WebLogic集群。 总的来说,WebLogic配置涉及到多个层面,从基础的项目部署...

    WebLogic 配置文件

    【WebLogic配置文件详解】 WebLogic配置文件,通常命名为`config.xml`,是WebLogic Server的核心配置文件,它包含了服务器的各个方面的配置信息,包括性能相关的参数。通过对这些参数进行适当的调整,可以显著提升...

    WebLogic10安装图解

    WebLogic 10 安装、配置和部署详解 本文档提供了对 WebLogic 10 的安装、配置和部署的详细指南。首先,我们将指导您如何安装 WebLogic 10,包括创建域、配置数据源和部署应用程序。然后,我们将深入探讨每个步骤的...

    MyEclipse+WebLogic9.x配置图文详解

    ### MyEclipse与WebLogic 9.x集成配置详解 #### 一、WebLogic 9.2 安装 **步骤1:** 开始安装 WebLogic 9.2,双击安装程序图标开始安装过程。 **步骤2:** 选择 BEA 根目录,这是 WebLogic 安装的基础目录。 **...

    weblogic自学全套教程

    七、WebLogic10详解 WebLogic 10版本引入了许多新特性,例如增强的安全性、支持Java EE 5、改进的性能等。理解这些特性可以帮助我们更好地利用WebLogic 10来满足业务需求。 通过学习本套教程,你将能够熟练掌握...

    Weblogic9.1 for Linux建域、部署应用详解

    【Weblogic9.1 for Linux建域、部署应用详解】 Weblogic Server是Oracle公司的一款流行的Java EE应用服务器,主要用于管理和部署企业级的应用程序。在Linux环境下配置Weblogic Server,包括创建域、启动控制台和...

    Weblogic内存大小配置

    第三方本地模块(如JDBC驱动程序)也会消耗本地内存。本地内存的最大值受限于操作系统虚拟地址空间和Java堆大小。 3. **进程大小**:它涵盖了Java堆、本地内存及加载的可执行文件和库所占用的内存总和。在32位操作...

Global site tag (gtag.js) - Google Analytics