JNDI定義Oracle資料來源的方法

來源:互聯網
上載者:User

定義JNDI資料來源的方法如下:

內容提要:

1、介紹

2、資料連線池的配置

3、不使用串連池的解決方案

4、Oracle資料來源配置舉例

一、總體介紹 Introdution

配置JNDI資料來源是配置JNDI資源的一個特例,過程和方法都差不多..

請注意:在Tomcat 5.0.x 和 Tomcat 5.5.x版本之間,JNDI資源的配置已經發生了變化,所以,如果你使用的是以上版本需要修改一下配置文法..

本文假定你已經理解了Context和Host的配置,如果沒有,請自行學習..

二、資料連線池的配置 Database Connection Pool(DBCP) Configurations

DBCP提供了對JDBC2.0的支援,如果你使用的1.4版本JVM,DBCP將支援JDBC3.0..

2.1 安裝 Installation

DBCP使用Jakarta-Commons Database Connection Pool,它依賴以下三個包:

Jakarta-Commons DBCP

Jakarta-Commons Collections

Jakarta-Commons Pool

在Tomcat的安裝目錄提供了一個整合的jar包 $CATALINA_HOME/lib/tomcat-dbcp.jar..

三、避免資料連線池泄露 Preventing DB connection pool leaks

顧名思義,資料連線池負責建立和管理資料庫串連.重用一個已經存在的資料連線要比每次都開啟建立(new)一個串連效率高的多..

但串連池通常個問題:一個Web應用程式需要關閉ResultSet's,Statement's,Connections's等資源.如果應用程式關閉資源失敗,就是導致這些資源無法在被重用,即資料連線池泄露.最終如果沒有足夠的有效串連,將導致應用程式串連失敗.

對於這個問題有個解決方案;Jakarta-Commons的DBCP可以通過配置來跟蹤、恢複那些關閉失敗的串連.不但可以恢複,而且還可以產生堆棧軌跡..

為了關閉和重用那個被遺棄的資源,可以在DBCP資料來源的資源配置中加入一下屬性:

removeAbandoned="true"

當有效資料連線低於DBCP設定的時候,就會重用被遺棄的資源..預設是false;

removeAbandonedTimeout="60"

設定被拋棄的資料連線在多少秒之後可以被刪除...預設是300秒.

logAbandoned="true"

如果想要記錄下被拋棄資料連線的堆棧軌跡可以設為true..預設false;

四、Oracle配置舉例

Tomcat只能識別*.jar檔案,如果資料庫驅動為*.zip,則需要修改副檔名為jar..對於Oracle9i應該使用 oracle.jdbc.OracleDriver,因為 oracle.jdbc.driver.OracleDriver 已經不建議使用..將來也不一定支援了..

4.1 配置server.xml

<Resource name="jdbc/myoracle" auth="Container"
 type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
 url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
 username="scott" password="tiger" maxActive="20" maxIdle="10"
 maxWait="-1"/>

4.2 配置web.xml

<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

4.3 程式碼範例

Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
//etc.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.