tomcat5.0與tomcat5.5的數據庫連接池jndi配置區別

在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>

同樣,可以用上面的代碼進行測試。  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章