MLDN
课程咨询[孔老师]QQ 1031143579孔老师QQ课程咨询留言 课程咨询[徐老师 ]QQ 945313230
徐老师QQ课程咨询留言
课程咨询[刘老师 ]QQ 514543793
刘老师QQ课程咨询留言
java培训
北京java培训
IT电子教育门户 高端JAVA培训 -=> 资源中心 -=> JAVA SE技术专区 -=> JAVA数据库操作 -=> 正文

JNDI定义Oracle数据源的方法

 发布日期:2007-10-24 9:14:00 发布者:[IT电子教育门户]   评论:[]  浏览:

定义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应用程序需要关闭ResultSets,Statements,Connectionss等资源.如果应用程序关闭资源失败,就是导致这些资源无法在被重用,即数据连接池泄露.最终如果没有足够的有效的连接,将导致应用程序连接失败.

对于这个问题有个解决方法;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

java视频教程
JAVA核心_75对象序列化练习
 JAVA核心_75对象序列化..
JAVA核心_74对象序列化
 JAVA核心_74对象序列化..
JAVA核心_73字符编码
 JAVA核心_73字符编码 ..
JAVA核心_72Scanner
 JAVA核心_72Scann..
JAVA核心_71 IO练习 二
 JAVA核心_71 IO练习..
相关文章 推荐文章
JSP连接ORACLE数据库时注..[9.18]
J2EE应用中与Oracle数据..[3.16]
Java调用Oracle的过程和..[3.3]
Java数据库程序中的存储过程设计
在Java程序中处理数据库超时与死锁
JNDI定义Oracle数据源的方法
JSP连接ORACLE数据库时注意的一..
简单介绍JSP数据库高级操作
热门文章
JAVA-数据库-各种数据库连接代码
Java数据库编程中的几个常用技巧
JAVA操作数据库方式与设计模式应用
在Oracle JDBC访问中加入Sp..
数据库连接池技术浅析
J2EE数据库设计入门
数据结构与算法分析_Java版(英文)..
JAVA数据库基本操作指南
在Oracle JDBC访问中加入Sp..
java中访问数据库操作
今日更新
Java数据库程序中的存储过程设计
在Java程序中处理数据库超时与死锁
JNDI定义Oracle数据源的方法
Java连接各种数据库的实例
Java数据库编程中的基本步骤和常用技..
JSP连接ORACLE数据库时注意的一..
简单介绍JSP数据库高级操作
JAVA数据库基本操作指南
JSP如何连接DB2数据库
从网络数据库中下载数据
JAVA招聘网
 评一评
正在读取…
  姓名:
  评论:
    
【注】 发表评论必需遵守以下条例: !!!
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
关于我们 | 商务合作 | 招聘信息 | 客服中心 | 服务条款 | 免责声明 | 网站导航 QQ留言
Copyright 2009 魔乐培训MLDN.CN all rights reserved 版权所有 京ICP备07008611号