在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
3、在下面增加属性
4、在你的应用的web.xml里面增加
同样,可以用上面的代码进行测试。
tomcat5.5出来后,jndi的配置方法是大大地节省,而且很简洁,个人觉得比以前的版本好很多。这里大概给出一个配置例子。tomcat数据库连接池jndi配置有两种,一种是全局的,一种是context的,下面主要是讲全局的,并且以一个实例jdbc/byisdb为例子
一、tomcat5.0配置方法
1、首先在server.xml里面配置,找到下面的配置
<!-- Global JNDI resources -->
<GlobalNamingResources>
</GlobalNamingResources>
2、在里面增加一个Resource
<
Resource name
=
"
jdbc/byisdb
"
auth = " Container "
type = " javax.sql.DataSource " />
auth = " Container "
type = " javax.sql.DataSource " />
3、在下面增加属性
<
ResourceParams name
=
"
jdbc/byisdb
"
>
< 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 >
< 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里面增加
<
resource
-
ref
>
< 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 >
< 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 initContext
=
new
InitialContext();
Context envContext = (Context)initContext.lookup( " java:/comp/env " );
DataSource ds = (DataSource)envContext.lookup( " jdbc/byisdb " );
Connection conn = ds.getConnection();
out.println( " conn is: " + conn);
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里面
添加下面的配置
<
Resource
name
="jdbc/byisdb"
auth
="Container"
type
="javax.sql.DataSource"
driverClassName
="oracle.jdbc.driver.OracleDriver"
url
="jdbc:oracle:thin:@192.168.1.210:1521:byisdb"
username
="una_oa"
password
="una_oa"
maxActive
="20"
maxIdle
="10"
maxWait
="10000"
/>
2在你的应用的web.xml里面增加
<
resource
-
ref
>
< 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 >
< 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 >
同样,可以用上面的代码进行测试。