濡備綍瀹氫箟JNDI鏁版嵁婧?(鎶藉彇緲昏瘧浜嗕竴涓婽omcat鏂囨。鐨凧NDI鏁版嵁婧愮殑閮ㄥ垎,涓嶅鐨勫湴鏂硅鎸囨..)
鍐呭鎻愯:
1銆佷粙緇?br> 2銆佹暟鎹繛鎺ユ睜鐨勯厤緗?br> 3銆佷笉浣跨敤榪炴帴姹犵殑瑙e喅鏂規
4銆丱racle鏁版嵁婧愰厤緗婦渚?/strong>
1銆佹諱綋浠嬬粛 Introdution
閰嶇疆JNDI鏁版嵁婧愭槸閰嶇疆JNDI璧勬簮鐨勪竴涓壒渚?榪囩▼鍜屾柟娉曢兘宸笉澶?.
璇鋒敞鎰?鍦═omcat 5.0.x 鍜?Tomcat 5.5.x鐗堟湰涔嬮棿,JNDI璧勬簮鐨勯厤緗凡緇忓彂鐢熶簡鍙樺寲,鎵浠?濡傛灉浣犱嬌鐢ㄧ殑鏄互涓婄増鏈渶瑕佷慨鏀逛竴涓嬮厤緗娉?.
鏈枃鍋囧畾浣犲凡緇忕悊瑙d簡Context鍜孒ost鐨勯厤緗?濡傛灉娌℃湁,璇瘋嚜琛屽涔?.
2銆佹暟鎹繛鎺ユ睜鐨勯厤緗?Database Connection Pool(DBCP) Configurations
DBCP鎻愪緵浜嗗JDBC2.0鐨勬敮鎸?濡傛灉浣犱嬌鐢ㄧ殑1.4鐗堟湰JVM,DBCP灝嗘敮鎸丣DBC3.0..
2.1 瀹夎 Installation
DBCP浣跨敤Jakarta-Commons Database Connection Pool,瀹冧緷璧栦互涓嬩笁涓寘:
Jakarta-Commons DBCP
Jakarta-Commons Collections
Jakarta-Commons Pool
鍦═omcat鐨勫畨瑁呯洰褰曟彁渚涗簡涓涓泦鎴愮殑jar鍖?$CATALINA_HOME/lib/tomcat-dbcp.jar..
3 閬垮厤鏁版嵁榪炴帴姹犳硠闇?Preventing DB connection pool leaks
欏懼悕鎬濅箟,鏁版嵁榪炴帴姹犺礋璐e垱寤哄拰綆$悊鏁版嵁搴撹繛鎺?閲嶇敤涓涓凡緇忓瓨鍦ㄧ殑鏁版嵁榪炴帴瑕佹瘮姣忔閮芥墦寮鏂板緩(new)涓涓繛鎺ユ晥鐜囬珮鐨勫..
浣嗚繛鎺ユ睜閫氬父涓棶棰?涓涓猈eb搴旂敤紼嬪簭闇瑕佸叧闂璕esultSet's,Statement's,Connections's絳夎祫婧?濡傛灉搴旂敤紼嬪簭鍏抽棴璧勬簮澶辮觸,灝辨槸瀵艱嚧榪欎簺璧勬簮鏃犳硶鍦ㄨ閲嶇敤,鍗蟲暟鎹繛鎺ユ睜娉勯湶.鏈緇堝鏋滄病鏈夎凍澶熺殑鏈夋晥鐨勮繛鎺?灝嗗鑷村簲鐢ㄧ▼搴忚繛鎺ュけ璐?
瀵逛簬榪欎釜闂鏈変釜瑙e喅鏂規硶;Jakarta-Commons鐨凞BCP鍙互閫氳繃閰嶇疆鏉ヨ窡韙佹仮澶嶉偅浜涘叧闂け璐ョ殑榪炴帴.涓嶄絾鍙互鎭㈠,鑰屼笖榪樺彲浠ョ敓鎴愬爢鏍堣建榪?.
涓轟簡鍏抽棴鍜岄噸鐢ㄩ偅涓閬楀純鐨勮祫婧?鍙互鍦―BCP鏁版嵁婧愮殑璧勬簮閰嶇疆涓姞鍏ヤ竴涓嬪睘鎬?
xml 浠g爜
褰撴湁鏁堢殑鏁版嵁榪炴帴浣庝簬DBCP璁劇疆鐨勬椂鍊?灝變細閲嶇敤琚仐寮冪殑璧勬簮..榛樿鏄痜alse;
xml 浠g爜
- removeAbandonedTimeout="60"
璁劇疆琚姏寮冪殑鏁版嵁榪炴帴鍦ㄥ灝戠涔嬪悗鍙互琚垹闄?..榛樿鏄?00縐?
xml 浠g爜
濡傛灉鎯寵璁板綍涓嬭鎶涘純鏁版嵁榪炴帴鐨勫爢鏍堣建榪瑰彲浠ヨ涓簍rue..榛樿false;
4銆丱racle閰嶇疆涓句緥
Tomcat鍙兘璇嗗埆*.jar鏂囦歡,濡傛灉鏁版嵁搴撻┍鍔ㄤ負*.zip,鍒欓渶瑕佷慨鏀規墿灞曞悕涓簀ar..瀵逛簬Oracle9i搴旇浣跨敤 oracle.jdbc.OracleDriver,鍥犱負 oracle.jdbc.driver.OracleDriver 宸茬粡涓嶅緩璁嬌鐢?.灝嗘潵涔熶笉涓瀹氭敮鎸佷簡..
4.1 閰嶇疆server.xml
xml 浠g爜
- <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 浠g爜
- <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 浠g爜紺轟緥
java 浠g爜
- Context initContext = new InitialContext();
- Context envContext = (Context)initContext.lookup("java:/comp/env");
- DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
- Connection conn = ds.getConnection();
-
鑻辨枃鍘熸枃鍦板潃:tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
2007-06-27
jvincent
|