JNDI定义Oracle数据源的办法[Java编程]
本文“JNDI定义Oracle数据源的办法[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
定义JNDI数据源的办法以下:
内容概要:
1、介绍
2、数据衔接池的配置
3、不利用衔接池的办理筹划
4、Oracle数据源配置举例
1、总体介绍 Introdution
配置JNDI数据源是配置JNDI资源的一个特例,历程和办法都差不多..
请注意:在Tomcat 5.0.x 和 Tomcat 5.5.x版本之间,JNDI资源的配置已经发生了改变,所以,假如你利用的是以上版本需求改正一下配置语法..
本文假定你已经理解了Context和Host的配置,假如没有,请自行学习..
2、数据衔接池的配置 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..
3、避免数据衔接池泄露 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;
4、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.
以上是“JNDI定义Oracle数据源的办法[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |