久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

如何定義JNDI數(shù)據(jù)源(http://bbs.bc-cn.net/viewthread.php?tid=150789)

 昵稱(chēng)10504424 2013-02-18

如何定義JNDI數(shù)據(jù)源 (抽取翻譯了一下Tomcat文檔的JNDI數(shù)據(jù)源的部分,不對(duì)的地方請(qǐng)指正..)

內(nèi)容提要:
1,、介紹
2,、數(shù)據(jù)連接池的配置
3、不使用連接池的解決方案
4,、Oracle數(shù)據(jù)源配置舉例

1,、總體介紹 Introdution

配置JNDI數(shù)據(jù)源是配置JNDI資源的一個(gè)特例,過(guò)程和方法都差不多..
請(qǐng)注意:在Tomcat 5.0.x 和 Tomcat 5.5.x版本之間,JNDI資源的配置已經(jīng)發(fā)生了變化,所以,如果你使用的是以上版本需要修改一下配置語(yǔ)法..
本文假定你已經(jīng)理解了Context和Host的配置,如果沒(méi)有,請(qǐng)自行學(xué)習(xí)..

2、數(shù)據(jù)連接池的配置 Database Connection Pool(DBCP) Configurations

DBCP提供了對(duì)JDBC2.0的支持,如果你使用的1.4版本JVM,DBCP將支持JDBC3.0..
2.1 安裝 Installation
DBCP使用Jakarta-Commons Database Connection Pool,它依賴(lài)以下三個(gè)包:
Jakarta-Commons DBCP
Jakarta-Commons Collections
Jakarta-Commons Pool
在Tomcat的安裝目錄提供了一個(gè)集成的jar包 $CATALINA_HOME/lib/tomcat-dbcp.jar..
3 避免數(shù)據(jù)連接池泄露 Preventing DB connection pool leaks
顧名思義,數(shù)據(jù)連接池負(fù)責(zé)創(chuàng)建和管理數(shù)據(jù)庫(kù)連接.重用一個(gè)已經(jīng)存在的數(shù)據(jù)連接要比每次都打開(kāi)新建(new)一個(gè)連接效率高的多..
但連接池通常個(gè)問(wèn)題:一個(gè)Web應(yīng)用程序需要關(guān)閉ResultSet's,Statement's,Connections's等資源.如果應(yīng)用程序關(guān)閉資源失敗,就是導(dǎo)致這些資源無(wú)法在被重用,即數(shù)據(jù)連接池泄露.最終如果沒(méi)有足夠的有效的連接,將導(dǎo)致應(yīng)用程序連接失敗.
對(duì)于這個(gè)問(wèn)題有個(gè)解決方法;Jakarta-Commons的DBCP可以通過(guò)配置來(lái)跟蹤,、恢復(fù)那些關(guān)閉失敗的連接.不但可以恢復(fù),而且還可以生成堆棧軌跡..
為了關(guān)閉和重用那個(gè)被遺棄的資源,可以在DBCP數(shù)據(jù)源的資源配置中加入一下屬性:


xml 代碼
removeAbandoned="true"


當(dāng)有效的數(shù)據(jù)連接低于DBCP設(shè)置的時(shí)候,就會(huì)重用被遺棄的資源..默認(rèn)是false;


xml 代碼
removeAbandonedTimeout="60"


設(shè)置被拋棄的數(shù)據(jù)連接在多少秒之后可以被刪除...默認(rèn)是300秒.


xml 代碼
logAbandoned="true"


如果想要記錄下被拋棄數(shù)據(jù)連接的堆棧軌跡可以設(shè)為true..默認(rèn)false;

4,、Oracle配置舉例
Tomcat只能識(shí)別*.jar文件,如果數(shù)據(jù)庫(kù)驅(qū)動(dòng)為*.zip,則需要修改擴(kuò)展名為jar..對(duì)于Oracle9i應(yīng)該使用 oracle.jdbc.OracleDriver,因?yàn)?oracle.jdbc.driver.OracleDriver 已經(jīng)不建議使用..將來(lái)也不一定支持了..
4.1 配置server.xml


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


xml 代碼
<resource-ref>
<description>Oracle Datasource exampledescription>
<res-ref-name>jdbc/myoracleres-ref-name>
<res-type>javax.sql.DataSourceres-type>
<res-auth>Containerres-auth>
resource-ref>

4.3 代碼示例


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

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多