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

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

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

    posts - 49,comments - 97,trackbacks - 0

    本文描述了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 InterfaceJNDI)對(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ù))目錄的路徑\server\bin\oci817_8和到Oracle客戶端庫(kù)目錄的路徑\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)程序類的\JDBC\lib\classes12.zip文件添加給/startWebLogic腳本文件中的變量。

    • WebLogic Server Classpath變量。
    • 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)。

    fig1.jpg
    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 ClassnameURLProperties字段的值。Driver Classname就是用于獲得數(shù)據(jù)庫(kù)連接的驅(qū)動(dòng)程序類名。URL是用于獲得連接的數(shù)據(jù)庫(kù)URLProperties是用于創(chuàng)建連接的屬性列表。
      表1中指定了用于不同Oracle JDBC驅(qū)動(dòng)程序的Driver ClassnameURL設(shè)置。

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

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

      是指定登錄到Oracle數(shù)據(jù)庫(kù)中的用戶名。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è)節(jié)點(diǎn)。是連接池的名稱。
      要修改JDBC Connection Pool配置,點(diǎn)擊JDBC>Connection Pools>節(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 ConnectionsTest Created ConnectionsTest 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)。

    fig2.jpg
    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è)節(jié)點(diǎn)。是多池的名稱。

    配置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)。

    fig3.jpg
    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è)節(jié)點(diǎn)。是數(shù)據(jù)源的名稱。要修改數(shù)據(jù)源配置,點(diǎn)擊管理控制臺(tái)中的JDBC>Data Sources>節(jié)點(diǎn),選擇Configuration選項(xiàng)卡。為了可以在一次服務(wù)器訪問(wèn)中把每個(gè)Result Set的多個(gè)行從服務(wù)器取到外部客戶端,選擇Row Prefetch Enabled并指定Row Prefetch Size。要為非XAJDBC驅(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à)面中,指定URLDriver Class Name Factory NameProperties字段的值,然后點(diǎn)擊Create按鈕(參見(jiàn)圖4)。

    fig4.jpg
    4

      Administration Console中的JDBC>Data Source Factories節(jié)點(diǎn)將增加一個(gè)節(jié)點(diǎn)。是數(shù)據(jù)源工廠的名稱。要使用,需要重新啟動(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)程序類名。

    轉(zhuǎn)載:?http://www.54bk.com/more.asp?name=tjdream&id=13718

    posted on 2005-11-09 15:17 閔毓 閱讀(559) 評(píng)論(0)  編輯  收藏 所屬分類: 其他
    主站蜘蛛池模板: 免费理论片51人人看电影| 日本成人免费在线| 久久免费美女视频| 亚洲国产成人无码av在线播放| 国产成人无码综合亚洲日韩| 久久亚洲国产成人影院网站| 精品无码AV无码免费专区| 国产无遮挡无码视频免费软件| 久久久WWW免费人成精品| 自怕偷自怕亚洲精品| 亚洲国产精品久久久久网站 | 亚洲国色天香视频| 免费大黄网站在线观看| 国产片免费在线观看| 久久精品私人影院免费看| 美女视频黄a视频全免费网站色窝| 插鸡网站在线播放免费观看| 99精品视频免费| 狠狠入ady亚洲精品| 亚洲女人18毛片水真多| 亚洲不卡1卡2卡三卡2021麻豆| 亚洲中文久久精品无码1| 亚洲中文字幕一区精品自拍| 亚洲日韩一页精品发布| 亚洲精品国偷自产在线| 亚洲一区二区三区日本久久九| 色噜噜AV亚洲色一区二区| 午夜高清免费在线观看| 国产又大又粗又硬又长免费 | 人妻丰满熟妇无码区免费| 老妇激情毛片免费| WWW国产成人免费观看视频| 久久综合久久综合亚洲| 99久久精品国产亚洲| 国产日本亚洲一区二区三区| 色欲aⅴ亚洲情无码AV| 国产免费久久精品99久久| 伊人免费在线观看高清版| 久久A级毛片免费观看| 午夜宅男在线永久免费观看网| 免费A级毛片无码A∨中文字幕下载|