<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    本站不再更新,歡迎光臨 java開(kāi)發(fā)技術(shù)網(wǎng)
    隨筆-230  評(píng)論-230  文章-8  trackbacks-0
    ?
    dev2dev 首頁(yè) > 資源中心 > 技術(shù)文章
    配置BEA WebLogic 8.1 JDBC連接
    --Oracle 8.1.7數(shù)據(jù)庫(kù)使用的WebLogic 8.1 JDBC配置

    時(shí)間:2004-12-02
    作者:Ajay Vohra
    瀏覽次數(shù): 7623
    本文關(guān)鍵字:JDBC,?連接池,?connection,?pool,?datasource
    文章工具
    推薦給朋友?推薦給朋友
    打印文章?打印文章
      本文描述了BEA WebLogic 8.1 Server中各種與JDBC相關(guān)功能的配置。盡管我們使用了Oracle 8.1.7作為我們的示例數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),但是只要其他關(guān)系數(shù)據(jù)庫(kù)提供通過(guò)JDBC的連接,就可以很容易地把一般性的概念轉(zhuǎn)移到這些數(shù)據(jù)庫(kù)上。

      JDBC是標(biāo)準(zhǔn)的Java API,幾乎所有需要訪問(wèn)數(shù)據(jù)庫(kù)的J2EE應(yīng)用程序都直接或間接地使用了它。在BEA WebLogic 8.1中,配置JDBC連接包括創(chuàng)建和配置兩個(gè)主要的工件——JDBC連接池和數(shù)據(jù)源。與這兩個(gè)主要工件相關(guān)的是其他次要的可配置工件,比如多池或數(shù)據(jù)源工廠。



    連接池還是多池?
      在深入討論如何創(chuàng)建和配置連接池之前,我們需要簡(jiǎn)要地看一看需要使用連接池的原因。
      如果您沒(méi)有使用JDBC連接池訪問(wèn)數(shù)據(jù)庫(kù),那么為了建立到數(shù)據(jù)庫(kù)的連接,您將需要進(jìn)行以下步驟:

    • 加載JDBC驅(qū)動(dòng)程序類。
    • 創(chuàng)建JDBC驅(qū)動(dòng)程序的一個(gè)實(shí)例,并把它注冊(cè)到驅(qū)動(dòng)程序管理器中。
    • 通過(guò)提供一個(gè)數(shù)據(jù)庫(kù)URL和其他所需的參數(shù),從驅(qū)動(dòng)程序管理器中獲得一個(gè)到數(shù)據(jù)庫(kù)的連接。
    • 完成之后關(guān)閉連接。

      與這種一次一個(gè)連接的方法相比,連接池是數(shù)據(jù)庫(kù)連接的一個(gè)現(xiàn)存集合,而且可以在多個(gè)活動(dòng)的J2EE應(yīng)用程序中回收這些數(shù)據(jù)庫(kù)連接。連接池中的連接是開(kāi)放的,可用于訪問(wèn)。應(yīng)用程序使用一個(gè)連接之后,這個(gè)連接沒(méi)有被銷毀,而是被返回到連接池中,隨后可以為其他應(yīng)用程序所用。通過(guò)節(jié)省與頻繁建立和斷開(kāi)數(shù)據(jù)庫(kù)連接相關(guān)的計(jì)算資源,連接池提高了數(shù)據(jù)庫(kù)訪問(wèn)的性能,尤其是在負(fù)載高峰期內(nèi)。
      多池是連接池的集合。多池的主要目的是提高可用性和在一組連接池間實(shí)現(xiàn)負(fù)載均衡。

    為什么使用數(shù)據(jù)源?
      一個(gè)數(shù)據(jù)源就是一個(gè)提供對(duì)連接池或多池訪問(wèn)的Java命名和目錄接口(Java Naming and Directory Interface,JNDI)對(duì)象。連接池或多池對(duì)于配置數(shù)據(jù)源是必需的??梢允褂檬聞?wù)屬性來(lái)配置數(shù)據(jù)源。非事務(wù)性的數(shù)據(jù)源用于本地事務(wù);而事務(wù)性的數(shù)據(jù)源用于分布式事務(wù)。
      數(shù)據(jù)源封裝了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn),隱藏了訪問(wèn)連接池或多池所涉及的細(xì)節(jié)。另外,數(shù)據(jù)源使配置數(shù)據(jù)庫(kù)連接的事務(wù)性特性變得容易。
      JDBC Data Source Factory是一個(gè)JNDI對(duì)象,企業(yè)應(yīng)用程序使用它從應(yīng)用程序范圍內(nèi)的連接池中獲得連接。

    JDBC驅(qū)動(dòng)程序設(shè)置
      在WebLogic Server和 DBMS之間建立連接所需的JDBC驅(qū)動(dòng)程序分為兩種類型:Type 2和 Type 4。 Type 2 JDBC驅(qū)動(dòng)程序需要本地庫(kù)。使用Type 2 JDBC驅(qū)動(dòng)程序時(shí),需要把到WebLogic共享庫(kù)(或動(dòng)態(tài)鏈接庫(kù))目錄的路徑<WEBLOGIC>\server\bin\oci817_8和到Oracle客戶端庫(kù)目錄的路徑<ORACLE>\bin添加到系統(tǒng)變量< PATH >的開(kāi)頭部分。
      WebLogic 8.1 Server安裝在< WEBLOGIC >目錄中。Oracle 8.1.7數(shù)據(jù)庫(kù)安裝在< ORACLE >目錄中。< PATH >是WebLogic Server Path變量。
      對(duì)于Type 2和 Type 4驅(qū)動(dòng)程序來(lái)說(shuō),在WebLogic Server CLASSPATH中,需要相關(guān)的JDBC驅(qū)動(dòng)程序類來(lái)配置連接池或數(shù)據(jù)源。把包含Oracle Type 2 JDBC驅(qū)動(dòng)程序類的<ORACLE>\JDBC\lib\classes12.zip文件添加給<domain>/startWebLogic腳本文件中的<CLASSPATH>變量。

    • <CLASSPATH>:WebLogic Server Classpath變量。
    • <domain>:WebLogic Server Domain目錄。

    配置JDBC連接池
      現(xiàn)在,我們將考慮如何創(chuàng)建連接池和配置與其相關(guān)的各種參數(shù)。
      要?jiǎng)?chuàng)建一個(gè)JDBC連接池,在Administration Console中右擊JDBC>Connection Pools節(jié)點(diǎn),然后選擇Configure a new JDBC Connection Pool。
      這將顯示一個(gè)Configure a JDBC Connection Pool畫(huà)面。為Oracle數(shù)據(jù)庫(kù)選擇Database Type – Oracle。選擇一個(gè)Database Driver,然后點(diǎn)擊Continue按鈕(參見(jiàn)圖1)。


    圖1

      隨后顯示Define Connection Properties畫(huà)面。在這個(gè)畫(huà)面中,指定一個(gè)Database Name、一個(gè)Database User Name和一個(gè)Password。點(diǎn)擊Continue按鈕。
      隨后顯示Test DataBase Connection。在這個(gè)畫(huà)面中,指定Driver Classname、URL和Properties字段的值。Driver Classname就是用于獲得數(shù)據(jù)庫(kù)連接的驅(qū)動(dòng)程序類名。URL是用于獲得連接的數(shù)據(jù)庫(kù)URL。Properties是用于創(chuàng)建連接的屬性列表。
      表1中指定了用于不同Oracle JDBC驅(qū)動(dòng)程序的Driver Classname和URL設(shè)置。


    表1 驅(qū)動(dòng)程序類名和URL設(shè)置

      在URL設(shè)置中,< host >是在<ORACLE>/network/ADMIN/tnsnames.ora文件中指定的HOST值,<port>是在tnsnames.ora文件中指定的PORT值,而<database>是數(shù)據(jù)庫(kù)實(shí)例名稱。
      在Properties文本框中的設(shè)置是: 
      user=<user>
      server=<database>

      <user>是指定登錄到Oracle數(shù)據(jù)庫(kù)中的用戶名。<database>是Oracle數(shù)據(jù)庫(kù)實(shí)例名稱。如果使用了Oracle瘦(Type 4)驅(qū)動(dòng)程序,就不應(yīng)該指定服務(wù)器屬性。
      點(diǎn)擊Test Driver Configuration按鈕,以測(cè)試JDBC Connection Pool。如果驅(qū)動(dòng)程序配置測(cè)試成功,會(huì)顯示一條“Connection successful”消息。如果驅(qū)動(dòng)程序配置有錯(cuò)誤,則會(huì)顯示一條錯(cuò)誤消息。
      隨后會(huì)顯示Create and Deploy畫(huà)面。在這個(gè)畫(huà)面中,選擇一臺(tái)服務(wù)器部署連接池,然后點(diǎn)擊Create and Deploy按鈕來(lái)創(chuàng)建和部署一個(gè)JDBC連接池。這將在被選中的服務(wù)器上創(chuàng)建和部署一個(gè)連接池。也可以把它部署在多臺(tái)服務(wù)器上。Administration Console中的JDBC>Connection Pools節(jié)點(diǎn)將會(huì)增加一個(gè)<JDBCConnection Pool>節(jié)點(diǎn)。<JDBCConnection Pool>是連接池的名稱。
      要修改JDBC Connection Pool配置,點(diǎn)擊JDBC>Connection Pools><JDBCConnection Pool>節(jié)點(diǎn),然后選擇Configuration選項(xiàng)卡。要修改目標(biāo)服務(wù)器,選擇Target and Deploy選項(xiàng)卡。選擇一臺(tái)目標(biāo)服務(wù)器,然后點(diǎn)擊Apply按鈕。選擇Connections選項(xiàng)卡以配置JDBC Connections屬性。

    連接屬性

    • Initial Capacity:創(chuàng)建連接池時(shí)所創(chuàng)建的數(shù)據(jù)庫(kù)連接的數(shù)目。
    • Maximum Capacity: 連接池中連接的最大數(shù)目。
    • Capacity Increment: 連接池容量在最大容量限制范圍內(nèi)的增量。
    • LoginDelay: 在創(chuàng)建每個(gè)物理數(shù)據(jù)庫(kù)連接之前要延遲的秒數(shù)。
    • Allow Shrinking: 將該項(xiàng)設(shè)置為true時(shí),如果沒(méi)有使用額外的連接,則允許連接池把容量減小到InitialCapacity。
    • Shrink Frequency: 在減小連接池容量之前要等待的秒數(shù)。如果將Shrink Frequency設(shè)置為true,那么也必須將Allow Shrinking設(shè)置為true。
    • Test Frequency: 數(shù)據(jù)庫(kù)連接測(cè)試之間間隔的秒數(shù)。在每個(gè)Refresh Period時(shí)間間隔之后,如果設(shè)置了TestTableName,就會(huì)使用TestTableName測(cè)試未使用的數(shù)據(jù)庫(kù)連接。
    • Test Reserved Connections: 如果選擇了這個(gè)選項(xiàng),服務(wù)器會(huì)在把連接提供給客戶端之前對(duì)其進(jìn)行測(cè)試。
    • Test Created Connections: 如果選擇了這個(gè)選項(xiàng),就會(huì)在創(chuàng)建一個(gè)JDBC連接之后和在把它添加到JDBC連接池中的可用連接列表之前,對(duì)該JDBC連接進(jìn)行測(cè)試。
    • Test Released Connections: 如果選擇了這個(gè)選項(xiàng),服務(wù)器就會(huì)在把連接返回給連接池之前對(duì)其進(jìn)行測(cè)試。
    • Test Table Name: 用于JDBC連接測(cè)試的數(shù)據(jù)庫(kù)表名。如果指定了Test Frequency,并且選擇了Test Reserved Connections、Test Created Connections或Test Released Connections,則Table Name是必需的。

      在配置Connections畫(huà)面之后,選擇Apply按鈕。

    配置JDBC多池
      一個(gè)多池就是連接池的一個(gè)集合。在創(chuàng)建多池之前為多池配置連接池。要?jiǎng)?chuàng)建和配置一個(gè)新的多池,右擊Administration Console中的JDBC>Multi Pools節(jié)點(diǎn),然后選擇Configure a New Multi Pool。
      隨后會(huì)顯示Configuration畫(huà)面。在Multi Pool Configuration畫(huà)面中,指定Algorithm Type并選擇Create按鈕。如果將Algorithm Type設(shè)置為“High availability”,那么在使用另一個(gè)池中的連接之前,一個(gè)池中的所有可用連接應(yīng)已經(jīng)用完。如果將Algorithm Type設(shè)置為“Load balancing”,多池會(huì)將連接請(qǐng)求平均地分布給多池中的所有連接池(參見(jiàn)圖2)。


    圖2

      選擇Pools選項(xiàng)卡,然后在Pools畫(huà)面中選擇要添加到多池中的連接池。點(diǎn)擊Apply按鈕。被選中的連接池將被添加到多池中。連接中使用的連接池是基于Algorithm Type進(jìn)行選擇的。
      選擇Target and Deploy選項(xiàng)卡,然后在Target and Deploy畫(huà)面中選擇一臺(tái)目標(biāo)服務(wù)器。點(diǎn)擊Apply按鈕??梢园岩粋€(gè)多池部署在多臺(tái)服務(wù)器上。Administration Console中的JDBC>Multi Pools節(jié)點(diǎn)將會(huì)增加一個(gè)<Multi Pool>節(jié)點(diǎn)。<Multi Pool>是多池的名稱。

    配置JDBC數(shù)據(jù)源
      數(shù)據(jù)源是用于訪問(wèn)連接池或多池的JNDI對(duì)象。連接池或多池對(duì)于創(chuàng)建數(shù)據(jù)源是必需的。連接池對(duì)于創(chuàng)建事務(wù)性的數(shù)據(jù)源是必需的。應(yīng)在創(chuàng)建數(shù)據(jù)源之前創(chuàng)建連接池或多池。
      要?jiǎng)?chuàng)建和配置數(shù)據(jù)源,在Administration Console中右擊JDBC>Data Sources節(jié)點(diǎn),然后選擇Configure a new JDBCTxData Source。
      隨后會(huì)顯示Configuration畫(huà)面。在Data Source Configuration畫(huà)面中指定字段的設(shè)置。JNDI Name是數(shù)據(jù)源的JNDI路徑。
      選擇Honor Global Transactions,以創(chuàng)建一個(gè)事務(wù)性的(Tx)數(shù)據(jù)源。如果沒(méi)有選中Honor Global Transactions,那么所創(chuàng)建的數(shù)據(jù)源就是非Tx數(shù)據(jù)源(參見(jiàn)圖3)。


    圖3

      隨后會(huì)顯示Connect to Connection Pool畫(huà)面。在Pool Name字段中,從可用連接池的列表中選擇一個(gè)JDBC連接池,然后點(diǎn)擊Continue按鈕。數(shù)據(jù)源與被選中的連接池相連接。
      隨后會(huì)顯示Target the Data Source畫(huà)面。在這個(gè)畫(huà)面中,選擇一臺(tái)目標(biāo)服務(wù)器,然后點(diǎn)擊Continue按鈕。這將在被選中的服務(wù)器上部署數(shù)據(jù)源,但是也可以在多臺(tái)服務(wù)器上部署它。Administration Console中的JDBC>Data Sources節(jié)點(diǎn)將增加一個(gè)<JDBCData Source>節(jié)點(diǎn)。<JDBCData Source>是數(shù)據(jù)源的名稱。要修改數(shù)據(jù)源配置,點(diǎn)擊管理控制臺(tái)中的JDBC>Data Sources><JDBCData Source>節(jié)點(diǎn),選擇Configuration選項(xiàng)卡。為了可以在一次服務(wù)器訪問(wèn)中把每個(gè)Result Set的多個(gè)行從服務(wù)器取到外部客戶端,選擇Row Prefetch Enabled并指定Row Prefetch Size。要為非XA的JDBC驅(qū)動(dòng)程序啟用全局事務(wù),為非XA的驅(qū)動(dòng)程序選擇Emulate Two-Phase Commit,并選擇Honor Global Transactions。要修改數(shù)據(jù)源的目標(biāo)服務(wù)器,選擇Target and Deploy選項(xiàng)卡。選擇一臺(tái)目標(biāo)服務(wù)器,然后點(diǎn)擊Apply按鈕。

    數(shù)據(jù)源和Tx數(shù)據(jù)源之比較
      如果在數(shù)據(jù)源配置中選擇了Honor Global Transactions,數(shù)據(jù)源就是Tx數(shù)據(jù)源。數(shù)據(jù)源是和連接池或多池一起使用的。Tx數(shù)據(jù)源和連接池一起使用。數(shù)據(jù)源用于本地事務(wù)。Tx數(shù)據(jù)源用于分布式事務(wù)。
      在下列情況下,應(yīng)該使用Tx數(shù)據(jù)源而不是數(shù)據(jù)源:

    • 使用容器托管的持久性實(shí)體bean。
    • 在事務(wù)期間訪問(wèn)多項(xiàng)資源。
    • 在一個(gè)事務(wù)中進(jìn)行多個(gè)數(shù)據(jù)庫(kù)更新。
    • 在多臺(tái)服務(wù)器上使用同一個(gè)連接池。

    配置JDBC數(shù)據(jù)源工廠
      JDBC數(shù)據(jù)源工廠是一項(xiàng)JNDI數(shù)據(jù)源資源。企業(yè)應(yīng)用程序使用數(shù)據(jù)源工廠從應(yīng)用程序范圍內(nèi)的連接池中獲得連接。
      要?jiǎng)?chuàng)建和配置一個(gè)JDBC數(shù)據(jù)源工廠,在Administration Console中右擊JDBC>Data Source Factories節(jié)點(diǎn),然后選擇Configure a new JDBCDataSourceFactory。
      隨后會(huì)顯示Configuration畫(huà)面。在這個(gè)畫(huà)面中,指定URL、Driver Class Name、 Factory Name和Properties字段的值,然后點(diǎn)擊Create按鈕(參見(jiàn)圖4)。


    圖4

      Administration Console中的JDBC>Data Source Factories節(jié)點(diǎn)將增加一個(gè)<JDBCData Source Factory>節(jié)點(diǎn)。<JDBCData Source Factory>是數(shù)據(jù)源工廠的名稱。要使用<JDBCData Source Factory>,需要重新啟動(dòng)服務(wù)器。

    JDBC配置和服務(wù)器性能
      下面列出了BEA針對(duì) WebLogic Server的各種JDBC配置設(shè)置給出的建議。
      為了提高生產(chǎn)模式下服務(wù)器的性能:

    • 在JDBC連接池配置中,把InitialCapacity的值設(shè)置為等于 MaxCapacity。如果InitialCapacity的值小于MaxCapacity,那么當(dāng)負(fù)載增加時(shí),服務(wù)器就會(huì)創(chuàng)建額外的數(shù)據(jù)庫(kù)連接。在負(fù)載增加的情況下,必須分配資源以創(chuàng)建額外的數(shù)據(jù)庫(kù)連接,同時(shí)資源對(duì)于完成jdbc客戶端請(qǐng)求也是必需的。
    • 把MaxCapacity的值設(shè)置為等于需要JDBC連接的并發(fā)客戶端會(huì)話的數(shù)量:為了確定一個(gè)連接池中的并發(fā)客戶端會(huì)話,選擇該連接池節(jié)點(diǎn)。選擇Monitoring選項(xiàng)卡。Active Connections欄中的值是并發(fā)客戶端會(huì)話的平均數(shù)目。Connections High的值是并發(fā)客戶端會(huì)話的最大數(shù)量。在部署應(yīng)用程序和監(jiān)視活動(dòng)連接之后,可以修改MaxCapacity的值。
    • 當(dāng)外部客戶端通過(guò)WebLogic Server使用JDBC訪問(wèn)數(shù)據(jù)庫(kù)時(shí),在數(shù)據(jù)源配置中選擇Row Prefetch Enabled:通過(guò)在一次服務(wù)器訪問(wèn)中取多個(gè)行,行預(yù)取可以提高性能。

    結(jié)束語(yǔ)
      按照上面概述過(guò)程,WebLogic開(kāi)發(fā)人員應(yīng)該能夠針對(duì)Oracle 8.1數(shù)據(jù)庫(kù)配置BEA WebLogic 8.1 Server了。配置其他數(shù)據(jù)庫(kù)類似于配置Oracle 8.1。把包含相應(yīng)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)程序類的zip/jar文件添加給CLASSPATH變量,然后在JDBC連接池配置中指定相應(yīng)的連接URL和驅(qū)動(dòng)程序類名。

    參考資料


      原文出處:http://www.sys-con.com/story/?storyid=43045&DE=1

    ?作者簡(jiǎn)介
    Ajay Vohra是Compuware 公司的一名高級(jí)軟件工程師。
    dotdotdot

    dot
    ??
    相關(guān)產(chǎn)品
    相關(guān)技術(shù)
    posted on 2006-04-14 18:49 有貓相伴的日子 閱讀(8616) 評(píng)論(0)  編輯  收藏 所屬分類: j2ee
    本站不再更新,歡迎光臨 java開(kāi)發(fā)技術(shù)網(wǎng) 主站蜘蛛池模板: 日本免费A级毛一片| 日韩a级无码免费视频| 国产一精品一AV一免费孕妇| 中文字幕亚洲免费无线观看日本| 水蜜桃视频在线观看免费播放高清 | 国产亚洲美女精品久久久久| 我想看一级毛片免费的| 亚洲欧美日韩综合久久久| 女人18毛片a级毛片免费| 亚洲AV无码专区在线观看成人| 日韩在线看片免费人成视频播放| MM1313亚洲国产精品| 亚洲人成色7777在线观看不卡| 国产免费人成视频在线播放播| 亚洲中文字幕无码一区| 日本一卡精品视频免费| 激情内射亚洲一区二区三区爱妻| 成人毛片18女人毛片免费视频未 | 中文字幕无线码免费人妻| 亚洲AV无码国产精品麻豆天美| **实干一级毛片aa免费| 在线观看亚洲AV日韩A∨| www亚洲一级视频com| 久久久精品午夜免费不卡| 亚洲人成777在线播放| 四虎永久在线精品免费影视| 成人片黄网站色大片免费观看cn| 亚洲天天做日日做天天欢毛片| 免费看国产成年无码AV片| 添bbb免费观看高清视频| 久久精品国产亚洲网站| 最近中文字幕电影大全免费版| 亚洲国产综合AV在线观看| 亚洲日韩乱码中文无码蜜桃臀网站| 最近中文字幕mv免费高清在线 | 亚洲一卡2卡4卡5卡6卡残暴在线| 免费观看午夜在线欧差毛片| 免费国产成人18在线观看| 亚洲av永久无码| 久久99国产亚洲精品观看| 国产高清免费在线|