`
jy00509336
  • 浏览: 243543 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

tomcat JNDI 连接池

阅读更多

 

一.在tomcat_home/common/lib下放入jdbc的驱动程序,额外说一下,如果是使用sql server的话,有至少两个驱动可以选择,一个是微软提供的,另一个是 jtds,比微软的要好很多,推荐使用

二.配置文件,tomcat 不同的版本配置文件略有不同,下面以tomcat5..5.*为例。

三.如果配置不正确会出现javax.naming.NameNotFoundException: Name is not bound in this Context 错误
方式一、全局数据库连接池
1、通过管理界面配置连接池,或者直接在tomcat/conf/server.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
2、在tomcat/webapps/myapp/META-INF/context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
这样就可以了。
方式二、全局数据库连接池
1、同上
2、在tomcat/conf/context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部数据库连接池
只需在tomcat/webapps/myapps/META-INF/context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource" password="mypwd" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" validationQuery="select 1" username="sa" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb" maxActive="4"/>
参数说明:
driveClassName:JDBC驱动类的完整的名称; 
maxActive:同时能够从连接池中被分配的可用实例的最大数; 
maxIdle:可以同时闲置在连接池中的连接的最大数; 
maxWait:最大超时时间,以毫秒计; 
password:用户密码; 
url:到JDBC的URL连接; 
user:用户名称; 
validationQuery:用来查询池中空闲的连接。
以上三种方式在tomcat 5.5.4下都可以。另外,sql server的jdbc driver是从微软网站上下载的sql server jdbc (sp3)。

下面 分别举tomcat5.0 和tomcat 5.5  配置文件 的例子(将此配置文件置于Tomcat /conf/Catalina/localhost 下)

tomcat5.0

 <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/test">
        <parameter>
            <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <!-- Maximum number of dB connections in pool. Make sure you
             configure your mysqld max_connections large enough to handle
             all of your db connections. Set to 0 for no limit.
             -->
        <parameter>
            <name>maxActive</name>
            <value>100</value>
        </parameter>
        <!-- Maximum number of idle dB connections to retain in pool.
             Set to 0 for no limit.
             -->
        <parameter>
            <name>maxIdle</name>
            <value>30</value>
        </parameter>
        <!-- Maximum time to wait for a dB connection to become available
             in ms, in this example 10 seconds. An Exception is thrown if
             this timeout is exceeded.  Set to -1 to wait indefinitely.
             -->
        <parameter>
            <name>maxWait</name>
            <value>10000</value>
        </parameter>
        <!-- MySQL dB username and password for dB connections  -->
        <parameter>
            <name>username</name>
            <value>sa</value>
        </parameter>
        <parameter>
            <name>password</name>
            <value>test</value>
        </parameter>
        <!-- Class name for JDBC driver -->
        <parameter>
            <name>driverClassName</name>
            <value>net.sourceforge.jtds.jdbc.Driver</value>
        </parameter>
        <!-- Autocommit setting.  This setting is required to make
             Hibernate work.  Or you can remove calls to commit(). -->
        <parameter>
            <name>defaultAutoCommit</name>
            <value>true</value>
        </parameter>
        <!-- The JDBC connection url for connecting to your MySQL dB.
             The autoReconnect=true argument to the url makes sure that the
             mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
             connection.  mysqld by default closes idle connections after 8 hours.
             -->
        <parameter>
            <name>url</name>
            <value>jdbc:jtds:sqlserver://url/filedb;charset=gb2312;autoReconnect=true</value>
        </parameter>
        <!-- Recover abandoned connections -->
        <parameter>
            <name>removeAbandoned</name>
            <value>true</value>
        </parameter>
        <!-- Set the number of seconds a dB connection has been idle 
             before it is considered abandoned. 
             -->
        <parameter>
            <name>removeAbandonedTimeout</name>
            <value>60</value>
        </parameter>
        <!-- Log a stack trace of the code which abandoned the dB 
             connection resources. 
             -->
        <parameter>
            <name>logAbandoned</name>
            <value>true</value>
        </parameter>
    </ResourceParams>

tomcat 5.5

  <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
              maxActive="100" maxIdle="30" maxWait="10000"
              driverClassName="oracle.jdbc.driver.OracleDriver"
              username="test" password="test" 
              url="jdbc:oracle:thin:@url:1521:dcdb"
              defaultAutoCommit="true" removeAbandoned="true" 
              removeAbandonedTimeout="60" logAbandoned="true"/>

可以看到 5.0 中原来是元素的项在5.5中变成了属性

分享到:
评论

相关推荐

    Tomcat6配置连接池

    ### Tomcat6配置连接池详解 #### 一、引言 在Java Web开发中,数据库连接池技术的应用极为广泛。合理的数据库连接管理不仅能提高应用程序的性能,还能有效避免因频繁创建销毁连接所导致的资源浪费问题。Apache ...

    tomcat8 JNDI数据源加密

    TOMCAT8 JNDI对用户名和密码加密

    jndi连接池帮助文档

    【JNDI连接池详解】 JNDI,全称为Java Naming and Directory Interface,是一种Java API,主要用于对象的命名和目录服务。它允许开发者在无需直接与底层命名服务器交互的情况下查找和使用注册的对象,降低了编程...

    Tomcat6连接池配置详解(自动重连)

    ### Tomcat6连接池配置详解(自动重连) #### 一、引言 在现代Web应用开发中,数据库连接管理是非常重要的一环。为了提高应用性能并确保资源的有效利用,通常采用连接池技术来管理数据库连接。Apache Tomcat作为一...

    tomcat连接池配置

    本文将详细探讨Tomcat连接池的配置,包括其原理、配置步骤以及优化策略。 一、连接池原理 连接池是一种资源管理技术,用于存储数据库连接。它预先创建一定数量的数据库连接,当应用程序需要时可以从池中获取,使用...

    tomcat数据库连接池的使用

    在Java开发中,Tomcat作为一款广泛使用的应用服务器,提供了对数据库连接池的支持,使得应用程序可以高效、便捷地管理数据库连接。本文将详细介绍如何在Tomcat中配置和使用数据库连接池,以及相关的知识点。 首先,...

    Tomcat连接池配置

    **标题**: Tomcat连接池配置 **描述**: Tomcat连接池配置涉及到在Apache Tomcat服务器中设置数据源,以便高效地管理和复用数据库连接。这包括对Oracle和MSSQL Server这两种不同类型的数据库进行配置,并在Java应用...

    Jndi连接池

    **Jndi连接池详解** 在Java应用开发中,数据库连接池是不可或缺的一部分,它能够有效地管理和优化数据库连接,提高系统的性能和效率。JNDI(Java Naming and Directory Interface)是一种Java API,用于查找和管理...

    tomcat数据连接池配置

    本篇文章将深入探讨如何在Tomcat中配置数据连接池。 首先,我们要了解数据连接池的工作原理。数据连接池在初始化时会创建一定数量的数据库连接并存储在池中,当应用需要连接数据库时,可以从池中获取已存在的连接,...

    tomcat连接池的配置与性能测试

    一旦配置完成,我们可以通过编程方式从连接池中获取和释放连接,例如使用JNDI(Java Naming and Directory Interface)查找数据源,然后调用`getConnection()`方法创建连接。 性能测试是评估连接池效率的关键步骤。...

    Tomcat连接池配置详解

    Tomcat连接池,也称为数据源(DataSource),允许复用已建立的数据库连接,减少创建和关闭连接的开销。 配置Tomcat连接池的步骤如下: 1. **登录Tomcat管理页面**: 首先,你需要通过浏览器访问Tomcat的管理界面...

    tomcat连接池应用例子

    标题“Tomcat连接池应用例子”指的是在Java Web开发中,使用Tomcat内置的数据源(连接池)来管理与MySQL数据库的连接。Tomcat作为流行的Java应用服务器,提供了高效的连接池服务,帮助开发者优化数据库操作的性能和...

    tomcat6.0连接通过JNDI连接mysql实例

    在上面的代码中,我们使用 `InitialContext` 对象来查找 JNDI 资源,并从中获取连接池对象。然后,我们可以使用该连接池对象来获取数据库连接。 注意事项 在 Tomcat 6.0 中,需要在 `WEB-INF/web.xml` 文件中添加...

    JNDI数据库连接池

    为了配置JNDI连接池以连接到MySQL数据库,我们需要在Tomcat的`context.xml`或`server.xml`文件中添加必要的配置,包括数据源的JNDI名称、数据库URL、用户名、密码、驱动类名等。 例如,我们可以创建一个名为`...

    tomcat6连接池 数据源配置

    ### Tomcat 6连接池数据源配置详解 #### 一、引言 在Java Web开发中,数据库连接的管理是一项非常重要的任务。合理地管理和优化数据库连接不仅可以提高应用程序的性能,还能有效避免资源浪费和系统崩溃的风险。...

    Tomcat中连接池和数据源的使用.pdf

    标题与描述中的知识点聚焦于Tomcat中连接池和数据源的使用,这涉及到数据库连接管理、资源优化以及服务器配置等方面的重要技术细节。以下是对这些关键概念的深入解析: ### 数据库连接池的作用 数据库连接是一种...

    JNDI连接池+单例模式+文件上传

    首先,让我们详细了解一下JNDI连接池。JNDI主要负责将逻辑名称映射到物理资源,如数据库连接。在Web应用服务器中,如Tomcat、JBoss等,可以配置JNDI资源,然后通过JNDI查找获取数据库连接池中的连接。例如,你可以...

    TOMCAT JNDI配置

    - **maxWait**:指定连接池中连接处于空闲状态的最长时间(单位毫秒),超过会抛出异常,-1表示无限等待。 #### 四、配置context 数据源配置完成后,还需要配置相关的上下文信息`context`,使得程序可以通过JNDI初始...

Global site tag (gtag.js) - Google Analytics