操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

[J2EE] JNDI定义Oracle数据源的方法

2007-10-24 网友评论 0 条 点击进入论坛

  定义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

  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

  Oracle Datasource example

  jdbc/myoracle

  javax.sql.DataSource

  Container

  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.

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46473 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail