隨筆-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 閱讀(2950) 評論(1)  編輯  收藏

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 阜康市| 临汾市| 万荣县| 石首市| 湘潭县| 克山县| 榕江县| 双鸭山市| 剑川县| 山阳县| 马公市| 岢岚县| 兴城市| 娱乐| 湖州市| 克山县| 甘南县| 八宿县| 沾化县| 邯郸市| 天峨县| 原平市| 揭东县| 临江市| 微博| 泰安市| 河津市| 宣汉县| 镇巴县| 中阳县| 竹溪县| 资阳市| 威远县| 察哈| 北票市| 铜梁县| 金昌市| 安宁市| 韶关市| 泸溪县| 蓬溪县|