Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 644|回复: 0

JNDI定义Oracle数据源的方法

[复制链接]

该用户从未签到

发表于 2011-9-13 21:43:43 | 显示全部楼层 |阅读模式
定义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


&ltResource name="jdbc/myoracle" auth="Container"
  type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
  url="jdbcracle:thin127.0.0.1:1521:mysid"
  username="scott" password="tiger" maxActive="20" maxIdle="10"
  maxWait="-1"/&gt


4.2 配置web.xml


&ltdescription&gtOracle Datasource example&lt/description&gt
&ltres-ref-name&gtjdbc/myoracle&lt/res-ref-name&gt
&ltres-type&gtjavax.sql.DataSource&lt/res-type&gt
&ltres-auth&gtContainer&lt/res-auth&gt
&lt/resource-ref&gt



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.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-5-6 22:02 , Processed in 0.436966 second(s), 50 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表