配置BEA WebLogic 8.1 JDBC连接

本文描述了BEA WebLogic 8.1 Server中各种与JDBC相关功能的配置。尽管我们使用了Oracle 8.1.7作为我们的示例数据库管理系统(DBMS),但是只要其他关系数据库提供通过JDBC的连接,就可以很容易地把一般性的概念转移到这些数据库上。

JDBC是标准的Java API,几乎所有需要访问数据库的J2EE应用程序都直接或间接地使用了它。在BEA WebLogic 8.1中,配置JDBC连接包括创建和配置两个主要的工件——JDBC连接池和数据源。与这两个主要工件相关的是其他次要的可配置工件,比如多池或数据源工厂。

连接池还是多池?

在深入讨论如何创建和配置连接池之前,我们需要简要地看一看需要使用连接池的原因。

如果您没有使用JDBC连接池访问数据库,那么为了建立到数据库的连接,您将需要进行以下步骤:

加载JDBC驱动程序类。

创建JDBC驱动程序的一个实例,并把它注册到驱动程序管理器中。

通过提供一个数据库URL和其他所需的参数,从驱动程序管理器中获得一个到数据库的连接。

完成之后关闭连接。

与这种一次一个连接的方法相比,连接池是数据库连接的一个现存集合,而且可以在多个活动的J2EE应用程序中回收这些数据库连接。连接池中的连接是开放的,可用于访问。应用程序使用一个连接之后,这个连接没有被销毁,而是被返回到连接池中,随后可以为其他应用程序所用。通过节省与频繁建立和断开数据库连接相关的计算资源,连接池提高了数据库访问的性能,尤其是在负载高峰期内。

多池是连接池的集合。多池的主要目的是提高可用性和在一组连接池间实现负载均衡。

为什么使用数据源?

一个数据源就是一个提供对连接池或多池访问的Java命名和目录接口(Java Naming and Directory Interface,JNDI)对象。连接池或多池对于配置数据源是必需的。可以使用事务属性来配置数据源。非事务性的数据源用于本地事务;而事务性的数据源用于分布式事务。

数据源封装了对数据库的访问,隐藏了访问连接池或多池所涉及的细节。另外,数据源使配置数据库连接的事务性特性变得容易。

JDBC Data Source Factory是一个JNDI对象,企业应用程序使用它从应用程序范围内的连接池中获得连接。

JDBC驱动程序设置

在WebLogic Server和 DBMS之间建立连接所需的JDBC驱动程序分为两种类型:Type 2和 Type 4。 Type 2 JDBC驱动程序需要本地库。使用Type 2 JDBC驱动程序时,需要把到WebLogic共享库(或动态链接库)目录的路径<WEBLOGIC>\server\bin\oci817_8和到Oracle客户端库目录的路径<ORACLE>\bin添加到系统变量< PATH >的开头部分。

WebLogic 8.1 Server安装在< WEBLOGIC >目录中。Oracle 8.1.7数据库安装在< ORACLE >目录中。< PATH >是WebLogic Server Path变量。

对于Type 2和 Type 4驱动程序来说,在WebLogic Server CLASSPATH中,需要相关的JDBC驱动程序类来配置连接池或数据源。把包含Oracle Type 2 JDBC驱动程序类的<ORACLE>\JDBC\lib\classes12.zip文件添加给<domain>/startWebLogic脚本文件中的<CLASSPATH>变量。

<CLASSPATH>:WebLogic Server Classpath变量。

<domain>:WebLogic Server Domain目录。

配置JDBC连接池

现在,我们将考虑如何创建连接池和配置与其相关的各种参数。

要创建一个JDBC连接池,在Administration Console中右击JDBC>Connection Pools节点,然后选择Configure a new JDBC Connection Pool。

这将显示一个Configure a JDBC Connection Pool画面。为Oracle数据库选择Database Type – Oracle。选择一个Database Driver,然后点击Continue按钮(参见图1)。

图1

随后显示Define Connection Properties画面。在这个画面中,指定一个Database Name、一个Database User Name和一个Password。点击Continue按钮。

随后显示Test DataBase Connection。在这个画面中,指定Driver Classname、URL和Properties字段的值。Driver Classname就是用于获得数据库连接的驱动程序类名。URL是用于获得连接的数据库URL。Properties是用于创建连接的属性列表。

表1中指定了用于不同Oracle JDBC驱动程序的Driver Classname和URL设置。

表1 驱动程序类名和URL设置

在URL设置中,< host >是在<ORACLE>/network/ADMIN/tnsnames.ora文件中指定的HOST值,<port>是在tnsnames.ora文件中指定的PORT值,而<database>是数据库实例名称。

在Properties文本框中的设置是:

user=<user>

server=<database>

<user>是指定登录到Oracle数据库中的用户名。<database>是Oracle数据库实例名称。如果使用了Oracle瘦(Type 4)驱动程序,就不应该指定服务器属性。

点击Test Driver Configuration按钮,以测试JDBC Connection Pool。如果驱动程序配置测试成功,会显示一条“Connection successful”消息。如果驱动程序配置有错误,则会显示一条错误消息。

随后会显示Create and Deploy画面。在这个画面中,选择一台服务器部署连接池,然后点击Create and Deploy按钮来创建和部署一个JDBC连接池。这将在被选中的服务器上创建和部署一个连接池。也可以把它部署在多台服务器上。Administration Console中的JDBC>Connection Pools节点将会增加一个<JDBCConnection Pool>节点。<JDBCConnection Pool>是连接池的名称。

要修改JDBC Connection Pool配置,点击JDBC>Connection Pools><JDBCConnection Pool>节点,然后选择Configuration选项卡。要修改目标服务器,选择Target and Deploy选项卡。选择一台目标服务器,然后点击Apply按钮。选择Connections选项卡以配置JDBC Connections属性。

连接属性

Initial Capacity:创建连接池时所创建的数据库连接的数目。

Maximum Capacity: 连接池中连接的最大数目。

Capacity Increment: 连接池容量在最大容量限制范围内的增量。

LoginDelay: 在创建每个物理数据库连接之前要延迟的秒数。

Allow Shrinking: 将该项设置为true时,如果没有使用额外的连接,则允许连接池把容量减小到InitialCapacity。

Shrink Frequency: 在减小连接池容量之前要等待的秒数。如果将Shrink Frequency设置为true,那么也必须将Allow Shrinking设置为true。

Test Frequency: 数据库连接测试之间间隔的秒数。在每个Refresh Period时间间隔之后,如果设置了TestTableName,就会使用TestTableName测试未使用的数据库连接。

Test Reserved Connections: 如果选择了这个选项,服务器会在把连接提供给客户端之前对其进行测试。

Test Created Connections: 如果选择了这个选项,就会在创建一个JDBC连接之后和在把它添加到JDBC连接池中的可用连接列表之前,对该JDBC连接进行测试。

Test Released Connections: 如果选择了这个选项,服务器就会在把连接返回给连接池之前对其进行测试。

Test Table Name: 用于JDBC连接测试的数据库表名。如果指定了Test Frequency,并且选择了Test Reserved Connections、Test Created Connections或Test Released Connections,则Table Name是必需的。

在配置Connections画面之后,选择Apply按钮。

配置JDBC多池

一个多池就是连接池的一个集合。在创建多池之前为多池配置连接池。要创建和配置一个新的多池,右击Administration Console中的JDBC>Multi Pools节点,然后选择Configure a New Multi Pool。

随后会显示Configuration画面。在Multi Pool Configuration画面中,指定Algorithm Type并选择Create按钮。如果将Algorithm Type设置为“High availability”,那么在使用另一个池中的连接之前,一个池中的所有可用连接应已经用完。如果将Algorithm Type设置为“Load balancing”,多池会将连接请求平均地分布给多池中的所有连接池(参见图2)。

图2

选择Pools选项卡,然后在Pools画面中选择要添加到多池中的连接池。点击Apply按钮。被选中的连接池将被添加到多池中。连接中使用的连接池是基于Algorithm Type进行选择的。

选择Target and Deploy选项卡,然后在Target and Deploy画面中选择一台目标服务器。点击Apply按钮。可以把一个多池部署在多台服务器上。Administration Console中的JDBC>Multi Pools节点将会增加一个<Multi Pool>节点。<Multi Pool>是多池的名称。

配置JDBC数据源

数据源是用于访问连接池或多池的JNDI对象。连接池或多池对于创建数据源是必需的。连接池对于创建事务性的数据源是必需的。应在创建数据源之前创建连接池或多池。

要创建和配置数据源,在Administration Console中右击JDBC>Data Sources节点,然后选择Configure a new JDBCTxData Source。

随后会显示Configuration画面。在Data Source Configuration画面中指定字段的设置。JNDI Name是数据源的JNDI路径。

选择Honor Global Transactions,以创建一个事务性的(Tx)数据源。如果没有选中Honor Global Transactions,那么所创建的数据源就是非Tx数据源(参见图3)。

图3

随后会显示Connect to Connection Pool画面。在Pool Name字段中,从可用连接池的列表中选择一个JDBC连接池,然后点击Continue按钮。数据源与被选中的连接池相连接。

随后会显示Target the Data Source画面。在这个画面中,选择一台目标服务器,然后点击Continue按钮。这将在被选中的服务器上部署数据源,但是也可以在多台服务器上部署它。Administration Console中的JDBC>Data Sources节点将增加一个<JDBCData Source>节点。<JDBCData Source>是数据源的名称。要修改数据源配置,点击管理控制台中的JDBC>Data Sources><JDBCData Source>节点,选择Configuration选项卡。为了可以在一次服务器访问中把每个Result Set的多个行从服务器取到外部客户端,选择Row Prefetch Enabled并指定Row Prefetch Size。要为非XA的JDBC驱动程序启用全局事务,为非XA的驱动程序选择Emulate Two-Phase Commit,并选择Honor Global Transactions。要修改数据源的目标服务器,选择Target and Deploy选项卡。选择一台目标服务器,然后点击Apply按钮。

数据源和Tx数据源之比较

如果在数据源配置中选择了Honor Global Transactions,数据源就是Tx数据源。数据源是和连接池或多池一起使用的。Tx数据源和连接池一起使用。数据源用于本地事务。Tx数据源用于分布式事务。

在下列情况下,应该使用Tx数据源而不是数据源:

使用容器托管的持久性实体bean。

在事务期间访问多项资源。

在一个事务中进行多个数据库更新。

在多台服务器上使用同一个连接池。

配置JDBC数据源工厂

JDBC数据源工厂是一项JNDI数据源资源。企业应用程序使用数据源工厂从应用程序范围内的连接池中获得连接。

要创建和配置一个JDBC数据源工厂,在Administration Console中右击JDBC>Data Source Factories节点,然后选择Configure a new JDBCDataSourceFactory。

随后会显示Configuration画面。在这个画面中,指定URL、Driver Class Name、 Factory Name和Properties字段的值,然后点击Create按钮(参见图4)。


 

图4

Administration Console中的JDBC>Data Source Factories节点将增加一个<JDBCData Source Factory>节点。<JDBCData Source Factory>是数据源工厂的名称。要使用<JDBCData Source Factory>,需要重新启动服务器。

JDBC配置和服务器性能

下面列出了BEA针对 WebLogic Server的各种JDBC配置设置给出的建议。

为了提高生产模式下服务器的性能:

在JDBC连接池配置中,把InitialCapacity的值设置为等于 MaxCapacity。如果InitialCapacity的值小于MaxCapacity,那么当负载增加时,服务器就会创建额外的数据库连接。在负载增加的情况下,必须分配资源以创建额外的数据库连接,同时资源对于完成jdbc客户端请求也是必需的。

把MaxCapacity的值设置为等于需要JDBC连接的并发客户端会话的数量:为了确定一个连接池中的并发客户端会话,选择该连接池节点。选择Monitoring选项卡。Active Connections栏中的值是并发客户端会话的平均数目。Connections High的值是并发客户端会话的最大数量。在部署应用程序和监视活动连接之后,可以修改MaxCapacity的值。

当外部客户端通过WebLogic Server使用JDBC访问数据库时,在数据源配置中选择Row Prefetch Enabled:通过在一次服务器访问中取多个行,行预取可以提高性能。

结束语

按照上面概述过程,WebLogic开发人员应该能够针对Oracle 8.1数据库配置BEA WebLogic 8.1 Server了。配置其他数据库类似于配置Oracle 8.1。把包含相应数据库的驱动程序类的zip/jar文件添加给CLASSPATH变量,然后在JDBC连接池配置中指定相应的连接URL和驱动程序类名。

时间: 2024-10-29 05:54:47

配置BEA WebLogic 8.1 JDBC连接的相关文章

配置SQL Server2005 express与jdbc连接

express|server|sql 本文主要介绍了配置SQL Server2005 express与jdbc连接的全过程. SQL Server2000下的Java应用能否在SQL Server 2005 express上运行,经过不断测试与配置,总结以下经验: 1:首先确认SQL Server2005 express已经安装好了. 2:启用TCP/IP协议. 在"程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器&

配置SQL Server 2005 express与jdbc连接

本文主要介绍了配置SQL Server2005 express与jdbc连接的全过程. SQL Server2000下的Java应用能否在SQL Server 2005 express上运行,经过不断测试与配置,总结以下经验: 1:首先确认SQL Server2005 express已经安装好了. 2:启用TCP/IP协议. 在"程序->Microsoft SQL Server 2005->配置工具->SQL Server 外围应用配置器"中打开TCP/IP协议.如下

java学习:weblogic下JNDI及JDBC连接测试(weblogic环境)

JNDI的专业解释,大家自行去网络搜索吧,这里就不啰嗦了. 单纯从使用角度看,可以简称把它看成一个key-value的"哈希资源"容器.给定一个string类型的key,可以把任何类型的value,放入这个容器(通过bind/rebind方法):其它地方需要使用该资源时,根据key就能取出该资源(通过lookup方法) JNDI使用示例: package jmyang.weblogic; /** * <p>Title:JNDI示例(WebLogic环境) </p>

浅析MySQL JDBC连接配置上的两个误区

相信使用MySQL的同学都配置过它的JDBC驱动,多数人会直接从哪里贴一段URL过来,然后稍作修改就上去了,对应的连接池配置也是一样的,很少有人会去细想这每一个参数都是什么含义.今天我们就来聊两个比较常见的配置--是否要开启autoReconnect和是否缓存PreparedStatement. 一.autoReconnect=true真的好用么? 笔者看到过很多MySQL的URL里都是这样写的,复制过来改改IP.端口和库名就能用了: jdbc:mysql://xxx.xxx.xxx.xxx:3

JDBC连接Oracle数据库常见问题及解决方法

oracle|解决|数据|数据库|问题 Jbuilder正确连接 oracle 9i需要注意的几个问题 oracle8以上的应该都使用classes12.jar文件作为jdbc驱动: 正确设置windows的classpath和jbuilder中的enterprise setup .configure libraries,将casses12.jar路径正确添加到上述需要设置的地方: 进入database pilot,在database pilot中,file---new 在driver列表中如果

水晶报表的jsp实现(开发工具:bea weblogic workshop)

js|web|水晶报表 最近为客户开发一个mis系统,java技术,b/s结构.客户要求系统的报表采用水晶报表.怎样在jsp中实现水晶报表呢?找遍了所有的资料,水晶报表的web实现倒是很多,但都讲的是微软的.net方案.jsp中如何实现水晶报表的动态显示呢?经过一段时间的痛苦摸索,现在把我的方案介绍给大家,希望各位大哥批评指正 我的问题:需要动态的显示水晶报表,并且要根据我传递的一个参数(BH)的值动态的显示数据.并且要可以把水晶报表导出为word,excel,pdf等格式 我的解决方案:一:下

JDBC连接Oracle数据库常见问题及解决方法_JSP编程

注:本文是斑竹从JDBC & Transaction版摘录广大站友的提问以及各种解答整理而来,如果您认为本文的内容已触犯了您的权益,请联系管理员进行修改. Jbuilder正确连接 oracle 9i需要注意的几个问题 oracle8以上的应该都使用classes12.jar文件作为jdbc驱动: 正确设置windows的classpath和jbuilder中的enterprise setup .configure libraries,将casses12.jar路径正确添加到上述需要设置的地方:

sql server 2000 的 jdbc 连接

server 这几天开始为红凤办的网站做筹备工作,首当其冲的就是将SQL Server 的jdbc连接调试好.首先下载了很多的源代码文件.比如网上的新闻发布系统,社区管理系统等等,各种各样的使用SQL Server的jsp源代码.开始了我的漫长而又让人沮丧的数据库连接工作.        首先先确定一下我使用的工具是eclipse 3.2 + tomcat 6.0 + jdk1.6,操作系统是window xp sp2.        步骤一:安装SQL Server 2000(我开始安装了SQ

利用jdbc连接db2数据库

问题描述 利用jdbc连接db2数据库 数据库连接配置如下: jdbc.driver=com.ibm.db2.jcc.DB2Driver jdbc.url=jdbc:db2://localhost:50000/finical jdbc.username=db2admin jdbc.password=325314 报错如下: com.ibm.db2.jcc.b.DisconnectException: The application server rejected establishment of