设置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>
#p#分页标题#e#
<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按钮。数据源与被选中的毗连池相毗连。
#p#分页标题#e#
随后会显示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和驱动措施类名。