隨筆-16  評(píng)論-54  文章-0  trackbacks-0
          在tomcat5.5版本以前,可以說jndi配置相對(duì)是比較復(fù)雜的,而且據(jù)網(wǎng)友說用tomcat5.0的控制臺(tái)配置數(shù)據(jù)庫連接池經(jīng)常有問題,而且文檔寫得又不詳細(xì)。

          tomcat5.5出來后,jndi的配置方法是大大地節(jié)省,而且很簡潔,個(gè)人覺得比以前的版本好很多。這里大概給出一個(gè)配置例子。tomcat數(shù)據(jù)庫連接池jndi配置有兩種,一種是全局的,一種是context的,下面主要是講全局的,并且以一個(gè)實(shí)例jdbc/byisdb為例子
          ???
          一、tomcat5.0配置方法

          1、首先在server.xml里面配置,找到下面的配置
          ? <!-- Global JNDI resources -->
          ? <GlobalNamingResources>
          ?</GlobalNamingResources>

          2、在里面增加一個(gè)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、在你的應(yīng)用的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,到此配置完畢,可以用下面的幾段代碼進(jìn)行測(cè)試

          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在你的應(yīng)用的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>

          同樣,可以用上面的代碼進(jìn)行測(cè)試。
          posted on 2006-08-11 14:03 jspark 閱讀(2953) 評(píng)論(1)  編輯  收藏

          評(píng)論:
          # re: tomcat5.0與tomcat5.5的數(shù)據(jù)庫連接池jndi配置區(qū)別[未登錄] 2008-06-12 15:46 | dd
          你好,我有個(gè)問題,關(guān)于tomcat5.0配置的第4步,一定要在web.xml中添加嗎?這里添加的作用是什么?不添加這段web.xml代碼似乎也可以訪問到。  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 宁安市| 洮南市| 北安市| 收藏| 称多县| 萍乡市| 云和县| 太仆寺旗| 马公市| 庆城县| 赤城县| 定兴县| 凤山市| 六安市| 策勒县| 厦门市| 海口市| 罗田县| 泽州县| 沂源县| 凭祥市| 山西省| 葵青区| 大丰市| 启东市| 根河市| 兰西县| 扎兰屯市| 平泉县| 喜德县| 耿马| 丽江市| 灵宝市| 新余市| 南投市| 吉林省| 弋阳县| 华池县| 昌黎县| 什邡市| 吴桥县|