随笔-16  评论-54  文章-0  trackbacks-0
在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
      <Resource name="jdbc/byisdb"
               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>

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>

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);

二、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>

同样,可以用上面的代码进行测试。
posted on 2006-08-11 14:03 jspark 阅读(2928) 评论(1)  编辑  收藏

评论:
# re: tomcat5.0与tomcat5.5的数据库连接池jndi配置区别[未登录] 2008-06-12 15:46 | dd
你好,我有个问题,关于tomcat5.0配置的第4步,一定要在web.xml中添加吗?这里添加的作用是什么?不添加这段web.xml代码似乎也可以访问到。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: