在tomcat5.5版本以前,可以说jndi配置相对是比较复杂的,而且据网友说用tomcat5.0的控制台配置数据库连接池经常有问题,而且文档写得又不详细。
tomcat5.5出来后,jndi的配置方法是大大地节省,而且很简洁,个人觉得比以前的版本好很多。这里大概给出一个配置例子。tomcat数据库连接池jndi配置有两种,一种是全局的,一种是context的,下面主要是讲全局的,并且以一个实例jdbc/byisdb为例子
一、tomcat5.0配置方法
1、首先在server.xml里面配置,找到下面的配置
<!--
Global JNDI resources
-->
<GlobalNamingResources>
</GlobalNamingResources>
2、在里面增加一个Resource
auth = " Container "
type = " javax.sql.DataSource " />
3、在下面增加属性
< 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 - 1 for no limit. See also the DBCP documentation on this
and the minEvictableIdleTimeMillis configuration parameter.
-->
< 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 > una_oa </ value >
</ parameter >
< parameter >
< name > password </ name >
< value > una_oa </ value >
</ parameter >
<!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
if you want to use this driver - we recommend using Connector / J though
< parameter >
< name > driverClassName </ name >
< value > org.gjt.mm.mysql.Driver </ value >
</ parameter >
-->
<!-- Class name for the official MySQL Connector / J driver -->
< parameter >
< name > driverClassName </ name >
< value > oracle.jdbc.driver.OracleDriver </ 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:oracle:thin:@ 192.168 . 1.210 : 1521 :byisdb </ value >
</ parameter >
</ ResourceParams >
4、在你的应用的web.xml里面增加
< description > postgreSQL Datasource example </ description >
< res - ref - name > jdbc / byisdb </ res - ref - name >
< res - type > javax.sql.DataSource </ res - type >
< res - auth > Container </ res - auth >
</ resource - ref >
OK,到此配置完毕,可以用下面的几段代码进行测试
Context envContext = (Context)initContext.lookup( " java:/comp/env " );
DataSource ds = (DataSource)envContext.lookup( " jdbc/byisdb " );
Connection conn = ds.getConnection();
out.println( " conn is: " + conn);
二、tomcat5.5配置
1、打开conf/context.xml里面
添加下面的配置
2在你的应用的web.xml里面增加
< description > postgreSQL Datasource example </ description >
< res - ref - name > jdbc / byisdb </ res - ref - name >
< res - type > javax.sql.DataSource </ res - type >
< res - auth > Container </ res - auth >
</ resource - ref >
同样,可以用上面的代码进行测试。
2
一.在tomcat_home\common下放入jdbc的三个驱动程序(一定要的哦),可以在微软的网站上去下载,安装的SQLSERVER2k默认的用户名是sa,密码是空,但密码为空并不代表没有密码,所以你的url中一定要定义username和password,最好是重设定一下密码
二.出现不能引用错误的话一般就是路径没有写对,tomcat默认的路径是tomcat_home\webapps\不过使用5.5.x的话,按下面方法就行,不需要配置路径,而且也不用在youwebapp\WEB-INF\web.xml文件配置引用
三.tomcat5.5.x版的server.xml配置与tomcat5.0的配置不同,下面列举三种在tomcat5.5.x的配置方法,如果配置不正确会出现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)。
四.报错org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create
PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error
establishing
socket.)此是一个小问题,因为我的SQLSERVER2K的服务改成手动的,所以每次启动后就要手动的启动SQLSERVER2K,由于一下子不记的启动了,所以报些错误,所以如果你经常要用到SQLSERVER2K的话,最好不要将其改为手动启动
发表评论
-
数据库常识
2011-07-05 14:56 0delete from aa truncate table ... -
Oracle存储过程实例
2010-01-28 22:47 9234create or replace proc ... -
JDBC事务
2010-01-28 22:28 0作者:Jack Shirazi 开发 ... -
Oracle与SQL Server事务处理的比较
2010-01-28 22:03 1506事务处理是所有大型数 ... -
Sqlldr简介
2009-10-21 14:10 1290罗列了网上常见的三篇Sqlldr的介绍 一:sql lo ... -
Oracle中实现行列转换的方法
2009-07-21 22:31 1250student subject grade -------- ... -
oracle 中日期的加减
2009-07-21 22:00 21535加法 select sysdate,add_mo ... -
Oracle 分页
2009-03-26 17:07 0select * from (select rownum ... -
MYSQL的乱码问题
2009-02-17 12:45 839总结了一下几个处理方法 1:改变数据库的默认编码配置,在MYS ... -
几种开源数据库连接池的使用 --转载
2009-01-17 13:36 1792转载: http://www.blogjava.net/fa ... -
Resin和Tomcat的JNDI数据连接池配置
2009-01-17 13:35 4190先说Resin的JNDI数据池连 ... -
tomcat5.0连接池配置成功了,池连,JNDI
2009-01-17 13:34 0http://heisetoufa.iteye.com/blo ... -
java连接oracle数据库的各种方法及java在数据库中的含义
2009-01-17 13:34 1244java与oracle的接口: 在数据库中运行JA ... -
开源数据库连接池proxool
2009-01-17 13:32 1741关键词:proxool 连接池 开源 可以根据自己的实际情况, ... -
java实现 excel 中数据导入 oracle
2009-01-17 13:31 2953ORACLE是有一个叫ADI的解决方案 所需的额外包:comm ... -
registerOutParameter Method (SQLServerCallableStat
2009-01-17 13:31 1097registerOutParameter Method (SQ ... -
JDBCTM 指南CallableStatement
2009-01-17 13:31 10827 - CallableStatement 本概述 ... -
OJB查询
2009-01-17 13:27 1555该文档介绍了不同查询 ... -
OJB MySQL 配置
2009-01-17 13:26 11281. repository-database.xml < ... -
深入解析什么是存储过程
2009-01-17 13:26 2247深入解析什么是存储过 ...
相关推荐
通过上述步骤,我们不仅完成了Tomcat5.5.12 Admin模块的配置,还实现了与MySQL5.0之间的连接池配置。这为后续基于JSP的Web应用开发提供了坚实的基础。值得注意的是,配置过程中需要注意细节,如文件路径的准确性、...
在Tomcat 5.5.x中,全局数据库连接池通常是通过`GlobalNamingResources`配置在`server.xml`文件中的。例如,以下是一个配置示例: ```xml type="javax.sql.DataSource" password="mypwd" driverClassName=...
### Tomcat5.5.12 + MySQL5.0 + Eclipse 连接池配置详解 #### 一、Tomcat5.5.12中的Admin模块配置 Tomcat5.5.12作为一款广泛使用的Java应用服务器,在部署与管理Web应用方面提供了强大的支持。对于新手而言,了解...
本篇将详细解释如何在Tomcat下配置JNDI(Java Naming and Directory Interface)DataSource,以便实现与数据库(如MySQL)的连接。 首先,为了使Tomcat能够识别并使用MySQL数据库,我们需要将MySQL的JDBC驱动程序...
【描述】:Tomcat的数据源配置在不同的版本中略有差异,但其核心思想是一致的,都是为了创建一个连接池来管理数据库连接。我们将分别探讨Tomcat 5.5、5.0以及6.0版本的数据源配置,确保每个步骤都清晰易懂。 ### ...
总结来说,配置Tomcat中的JNDI DataSource涉及到放置JDBC驱动、修改`server.xml`、更新`web.xml`以及编写Java代码进行JNDI查找和数据库操作。在使用过程中,要留意可能出现的配置错误和运行时异常,以便进行调试和...
在Tomcat早期版本中,如Tomcat 5.0,可以通过内置的管理员界面(admin)方便地配置连接池。然而,从Tomcat 5.5开始,这个功能不再默认集成在服务器中,用户需要自行下载或手动配置。 在Tomcat 6.0中,配置JDBC连接...
完成上述配置后,需要确保JDBC驱动(在本例中是JTDs驱动)位于Tomcat的`lib`目录下,因为Tomcat需要这个驱动来建立与数据库的连接。 要测试数据源配置是否正确,可以创建一个`test.jsp`页面,通过JNDI查找并获取...
本书从最基础的JSP开发开始,循序渐进地介绍了JSP 开发技术,并涵盖了许多高级主题,如需要在企业级Web应用中使用的特性—Enterprise JavaBeans、JDBC 2.0、数据库连接池和自定义标签库。本书既适合初学者阅读,也...