`

如何在Tomcat中定义JNDI数据源

阅读更多

如何定义JNDI数据源 (抽取翻译了一下Tomcat文档的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数据源的资源配置中加入一下属性:

xml 代码
  1. removeAbandoned="true"  


当有效的数据连接低于DBCP设置的时候,就会重用被遗弃的资源..默认是false;

xml 代码
  1. removeAbandonedTimeout="60"  


设置被抛弃的数据连接在多少秒之后可以被删除...默认是300秒.

xml 代码
  1. logAbandoned="true"  


如果想要记录下被抛弃数据连接的堆栈轨迹可以设为true..默认false;

4、Oracle配置举例
Tomcat只能识别*.jar文件,如果数据库驱动为*.zip,则需要修改扩展名为jar..对于Oracle9i应该使用 oracle.jdbc.OracleDriver,因为 oracle.jdbc.driver.OracleDriver 已经不建议使用..将来也不一定支持了..
4.1 配置server.xml

xml 代码
  1. <Resource name="jdbc/myoracle" auth="Container"  
  2.               type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"  
  3.               url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"  
  4.               username="scott" password="tiger" maxActive="20" maxIdle="10"  
  5.               maxWait="-1"/>    

4.2 配置web.xml

xml 代码
  1. <resource-ref>  
  2.  <description>Oracle Datasource exampledescription>  
  3.  <res-ref-name>jdbc/myoracleres-ref-name>  
  4.  <res-type>javax.sql.DataSourceres-type>  
  5.  <res-auth>Containerres-auth>  
  6. resource-ref>  

4.3 代码示例

java 代码
  1. Context initContext = new InitialContext();   
  2. Context envContext  = (Context)initContext.lookup("java:/comp/env");   
  3. DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");   
  4. Connection conn = ds.getConnection();   
  5. //etc.   

 英文原文地址:tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html 

 

2007-06-27

jvincent
分享到:
评论
3 楼 jvincent 2007-09-24  
这个只是官方文档的一个翻译,再说就算版本不同,但应该也会向下兼容的吧
2 楼 viva156 2007-09-24  
你这样直接在web.xml中添加JNDI数据源不太理想。
Tomcat的版本不同,相应的标记也不相同。
去下一个Admin模块吧。直接在UI中添加。
1 楼 qintao1203 2007-09-21  
4.2 配置web.xml
问一下是tomcat里的web.xml
还是项目中的web.xml

相关推荐

    intellij idea使用tomcat开发时自动部署jndi数据源

    在这个场景中,“intellij idea使用tomcat开发时自动部署jndi数据源”是一个重要的知识点,它涉及到如何在IDE中配置和管理数据库连接,以便于在应用运行时动态地查找和使用数据源。 JNDI(Java Naming and ...

    tomcat配置JNDI数据源

    【描述】:“在Tomcat服务器上配置JNDI数据源,特别是通过DBCP连接池的方式” 【标签】:“tomcat,配置,JNDI数据源” 【内容】:配置JNDI数据源在Java Web应用程序中是一个重要的任务,它允许应用与数据库之间的...

    java中使用tomcat提供的JNDI数据源

    -- 定义JNDI数据源 --&gt; &lt;Resource name="jdbc/pubs" // Tomcat5.5.9 中数据库 JNDI 的名字 auth="Container" type="javax.sql.DataSource"//驱动类型 driverClassName=...

    JNDI数据源配置(tomcat)

    在 Tomcat 中,配置 JNDI 数据源有两种方式:单个应用独享数据源和全局 JNDI 数据源。 1. 单个应用独享数据源 在 Tomcat 的 server.xml 文件中,添加一个私有数据源的配置。例如,使用 c3p0 数据源的配置: ```...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    标题中的“Tomcat6.0配置JNDI数据源完整例子”是指在Apache Tomcat 6.0服务器中设置Java Naming and Directory Interface (JNDI)数据源的过程。JNDI是一个API,它允许应用程序查找和使用命名服务,如数据库连接池。...

    Tomcat6.0 JNDI数据源经典实例

    总结来说,这个Tomcat 6.0 JNDI数据源经典实例提供了从配置到使用的全过程,包括了必要的文件和脚本,便于开发者理解和实践JNDI数据源在实际项目中的应用。正确配置和使用JNDI数据源能有效管理和优化数据库连接,...

    Tomcat6配置JNDI出错

    在Tomcat中,JNDI被用来查找和绑定资源,如数据源、EJB等。配置JNDI资源可以帮助我们实现应用程序与数据库或其他服务的解耦,提高代码的可移植性和可维护性。 当在Tomcat6中配置JNDI时,错误可能由多种原因引起: ...

    Tomcat-5配置JNDI数据源

    总结,配置Tomcat 5.5及以上版本的JNDI数据源涉及多个步骤,包括添加JDBC驱动、配置全局数据源、在应用中引用数据源以及在代码中通过JNDI查找并使用数据源。选择全局或局部配置取决于应用的需求和资源的共享范围。...

    jndi数据源与数据池

    配置JNDI数据源通常涉及到两步:在应用服务器的配置文件中定义数据源,然后在应用的配置文件中引用它。以Tomcat为例,数据源通常在`Context.xml`文件中定义。例如: ```xml type="javax.sql.DataSource" ...

    配置 JNDI 数据源

    2. Tomcat配置:在Tomcat的`conf/server.xml`文件中,需要添加一个GlobalNamingResources下的DataSource元素,定义JNDI数据源。例如: ```xml ... type="javax.sql.DataSource" driverClassName=...

    Tomcat jndi 配置数据源过程

    总结,通过上述步骤,你已经在Tomcat中成功配置了一个JNDI数据源,使得应用程序可以通过全局名字方便地获取和释放数据库连接。这种配置方式提高了代码的可复用性和可维护性,同时利用连接池优化了数据库操作的性能。

    Tomcat下Teradata的JNDI数据源配置

    在Tomcat中配置Teradata的JNDI数据源,我们需要遵循以下步骤: 1. **准备驱动**: Teradata的数据连接需要特定的JDBC驱动,如`terajdbc4.jar`和`tbcjdbc.jar`。在给定的文件列表中,我们看到了`terajdbc4.jar`,这是...

    tomcat6.0 配置jndi

    **二、Tomcat6.0配置JNDI数据源步骤** 1. **创建数据源配置文件**:在Tomcat的`conf/server.xml`文件中,找到`&lt;GlobalNamingResources&gt;`标签,在其中添加数据源的配置。例如,创建一个名为`jdbc/myDataSource`的...

    Tomcat学习笔记 - 【使用JNDI数据源】

    本文将深入探讨如何在Tomcat中配置和使用JNDI数据源。 **一、JNDI数据源的优势** 1. **集中管理**:所有应用共享同一数据源配置,避免了代码中的硬编码,方便管理和更新。 2. **解耦合**:应用与数据库连接细节分离...

    JNDI数据源【步骤图解】

    总结,JNDI数据源是Java企业级应用中重要的数据库连接管理方式,通过JNDI服务,可以实现数据库连接的集中管理和动态配置,提高应用的可维护性和安全性。理解并正确配置JNDI数据源是开发高效、稳定的Java EE应用的...

    Tomcat中配置数据源JNDI

    在Tomcat中配置数据源JNDI是Java Web应用开发中的一个常见任务。通过上述介绍的方法,可以根据不同的应用场景选择合适的数据源配置方案。需要注意的是,正确的配置不仅包括XML文件的编写,还包括相关驱动的正确安装...

    用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源.doc

    综上所述,这个文档主要讲述了如何在Tomcat服务器上,通过Hibernate和JNDI数据源配置,使用DBCP连接池连接MySQL数据库。尽管Hibernate官方并不推荐使用DBCP,但文档仍然提供了详细的配置步骤,包括环境准备、数据库...

Global site tag (gtag.js) - Google Analytics