设为首页 收藏本站
查看: 647|回复: 0

[经验分享] tomcat 中 配制 dbcp

[复制链接]

尚未签到

发表于 2017-1-25 07:41:40 | 显示全部楼层 |阅读模式
本文以tomcat5.0和informix数据库为例,介绍tomcat 单个JNDI数据源和多数据源的配置。   
一、Tomcat配置一个jndi数据源方法
   第一步:在C:"Tomcat 5.0"conf"server.xml中<Host>….</Host>中增加如下内容,注意:<DefaultContext>属于<Host>下的一级元素。
  <DefaultContext>
               <Resource name = "jdbc/testdb0_cs" auth="Container"
                        type="javax.sql.DataSource"/>
               <ResourceParams name="jdbc/testdb0_cs">
                        <parameter>
                             <name>factory</name>
                               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                        </parameter>
                        <parameter>
                               <name>driverClassName</name>
                              <value>com.informix.jdbc.IfxDriver</value>
                        </parameter>
                        <parameter>
                               <name>url</name>
                               <value>jdbc:informix-sqli://192.177.191.130:6666/testdb0_cs:INFORMIXSERVER=ccbhr_test</value>
                        </parameter>
                        <parameter>
                               <name>username</name>
                               <value>hrmis</value>
                        </parameter>
                        <parameter>
                               <name>password</name>
                               <value>hrmis</value>
                        </parameter>
                        <parameter>
                               <name>maxActive</name>
                               <value>20</value>
                        </parameter>
                        <parameter>
                               <name>maxIdle</name>
                               <value>10</value>
                        </parameter>
                        <parameter>
                               <name>poolPrepareStatements</name>
                               <value>true</value>
                        </parameter>
                        <parameter>
                            <name>removeAbandoned</name>
                            <!-- Abandoned DB connections are removed and recycled -->
                          <value>true</value>
                      </parameter>
                      <parameter>
                            <name>removeAbandonedTimeout</name>
                            <!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
                            <value>60</value>
                      </parameter>
                      <parameter>
                            <name>logAbandoned</name>
                            <!-- Log a stack trace of the code which abandoned -->
                            <value>false</value>
                      </parameter>
                 </ResourceParams>
          </DefaultContext>
  第二步:修改C:"eclipse-SDK-3.0.1-win32"eclipse"workspace"zlp"WebContent"WEB-INF下web.xml,在<web-app>…..</web-app>中增加一级元素如下:
  <!-- Database Config start -->
  <resource-ref>
  <description>connectDB test</description>
  <res-ref-name>jdbc/testdb0_cs</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
  <!-- Database Config end -->
  说明:蓝色的路径是你的应用所在路径下的web.xml
  第三步:将Informix JDBC Driver拷贝到C:"Tomcat 5.0"common"lib目录下
   
  第四步:重新启动tomcat
   
  二、Tomcat中配置多个数据源的方法 
  第一步:server.xml 蓝色和绿色部分是两个数据源,分别连接两个不同的数据库。依次类推,配置多个。
  <DefaultContext>
            <Resource name="jdbc/testdb0_cs1" auth="Container" type="javax.sql.DataSource"/>
            <ResourceParams name="jdbc/testdb0_cs1">
              <parameter>
                <name>factory</name>
                <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
              </parameter>
              <parameter>
                <name>driverClassName</name>
                <value>com.informix.jdbc.IfxDriver</value>
              </parameter>
              <parameter>
                <name>url</name>
                <value>jdbc:informix-sqli://192.177.179.208:6666/testdb0_cs1:INFORMIXSERVER=ccbhr_test</value>
              </parameter>
              <parameter>
                <name>username</name>
                <value>informix</value>
              </parameter>
              <parameter>
                <name>password</name>
                <value>google</value>
              </parameter>
              <parameter>
                <name>maxActive</name>
                <value>20</value>
              </parameter>
              <parameter>
                <name>maxIdle</name>
                <value>10</value>
              </parameter>
              <parameter>
                <name>poolPrepareStatements</name>
                <value>true</value>
              </parameter>
              <parameter>
                <name>removeAbandoned</name>
                <!-- Abandoned DB connections are removed and recycled -->
                <value>true</value>
              </parameter>
              <parameter>
                <name>removeAbandonedTimeout</name>
                <!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
                <value>60</value>
              </parameter>
              <parameter>
                <name>logAbandoned</name>
                <!-- Log a stack trace of the code which abandoned -->
                <value>false</value>
              </parameter>
            </ResourceParams>
            <Resource name="jdbc/testdb0_cs" auth="Container" type="javax.sql.DataSource"/>
            <ResourceParams name="jdbc/testdb0_cs">
              <parameter>
                <name>factory</name>
                <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
              </parameter>
              <parameter>
                <name>driverClassName</name>
                <value>com.informix.jdbc.IfxDriver</value>
              </parameter>
              <parameter>
                <name>url</name>
                <value>jdbc:informix-sqli://192.177.191.130:6666/testdb0_cs:INFORMIXSERVER=ccbhr_test</value>
              </parameter>
              <parameter>
                <name>username</name>
                <value>informix</value>
              </parameter>
              <parameter>
                <name>password</name>
                <value>informix</value>
              </parameter>
              <parameter>
                <name>maxActive</name>
                <value>20</value>
              </parameter>
              <parameter>
                <name>maxIdle</name>
                <value>10</value>
              </parameter>
              <parameter>
                <name>poolPrepareStatements</name>
                <value>true</value>
              </parameter>
              <parameter>
                <name>removeAbandoned</name>
                <!-- Abandoned DB connections are removed and recycled -->
                <value>true</value>
              </parameter>
              <parameter>
                <name>removeAbandonedTimeout</name>
                <!-- Use the removeAbandonedTimeout parameter to set the number of seconds a DB connection has been idle before it is considered abandoned. -->
                <value>60</value>
              </parameter>
              <parameter>
                <name>logAbandoned</name>
                <!-- Log a stack trace of the code which abandoned -->
                <value>false</value>
              </parameter>
            </ResourceParams>
          </DefaultContext>
   
  第二步:在应用的web.xml中增加新增的数据源,如下所示:
   <!-- Database Config start --> 
  <resource-ref>
  <description>connectDB test</description>
  <res-ref-name>jdbc/testdb0_cs</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
   <resource-ref>
  <description>connectDB test</description>
  <res-ref-name>jdbc/testdb0_cs1</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
  </resource-ref>
  <!-- Database Config end -->
  第三步:重启tomcat 
  三、多个数据源的访问方法参考
  public Connection getConn(String dsnName)
         {
                Connection conn = null;
                Context ctx = null;
                DataSource ds = null;
                String jndiStr = null;
                try{
                       jndiStr = "java:comp/env/jdbc/" + dsnName.trim();
                       System.out.println("jndiStr=[" + jndiStr + "]");
                       ctx = new InitialContext();
                       ds = (DataSource) ctx.lookup(jndiStr);
                        
                       conn = ds.getConnection();
                }
                catch(Exception e)
                {
                       System.out.println("Connect database [" + dsnName.trim() + "] Error:" + e);
                }    
                return conn;   
         }
         说明:其中dsnName是我们要具体访问的数据源JNDI,例如:testdb0_cs1


-Created by Scorpio Zhen

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-333015-1-1.html 上篇帖子: TOMCAT weblogic 间 移植 问题 下篇帖子: Tomcat server.xml 解析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表