论坛首页 Java企业应用论坛

如何使tomcat下的数据库连接池可以被几个工程公用?

浏览 6818 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-23  
我如果有两个系统要公用一个连接池,是否要把那段:

********************************
<Resource   name="jdbc/hbweb"   auth="Container"   type="javax.sql.DataSource"  
                                maxActive="100"   maxIdle="20"   maxWait="10000"  
                                username="sa"   password=" "   driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"  
                                url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=web"/>

******************************

放在tomcat下的server.xml 中的<GlobalNamingResources> </GlobalNamingResources>

之间呢?
  其它地方还用改动嘛?我怎么不行.
   
  另外如果我有两个工程.同时我也需要有两个连接池,可以实现任一个系统可以使用任一个连接池,如何做呢?
两个系统要公用一个连接池的时候.tomcat下的server.xml 中的
<Context></Context>
之间的  那段(如上)就不需要了.只用放在<GlobalNamingResources> </GlobalNamingResources>之间嘛?
 
请指教.
   发表时间:2006-12-23  
放在GlobalNamingResources标签里面是可以的。你注意看一下tomcat的log里面的信息。我猜测也许是因为你没有把相应的driver的jar包放在common\lib目录下导致出错。
0 请登录后投票
   发表时间:2006-12-23  
我的是这样的.
<GlobalNamingResources>
    <Environment
      value="30"
      type="java.lang.Integer"
      name="simpleValue"/>
    <Resource
      type="org.apache.catalina.UserDatabase"
      description="User database that can be updated and saved"
      auth="Container"
      name="UserDatabase"
      pathname="conf/tomcat-users.xml"
      factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/>
<Resource   name="jdbc/hbweb"   auth="Container"   type="javax.sql.DataSource"  
                                maxActive="100"   maxIdle="20"   maxWait="10000"  
                                username="sa"   password="567"   driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"  
                                url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hbweb"/>

  </GlobalNamingResources>


在Tomcat\common\lib  下有msbase.jar等三个数据库驱动jar包.现在是我把这段配置放在 global里,就不认:报错Cannot create JDBC driver of class '' for connect URL 'null' 
我也觉得应该是驱动的问题.可是我已经复制了有啊.而且系统环境变量:
%TOMCAT_HOME%\common\lib\mssqlserver.jar; 有这样的三个配置.实在不明白.

    各位给点建议好不?
0 请登录后投票
   发表时间:2006-12-23  
url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hbweb


这一句和上面一样.整个resource是一样的.只是帖子上不一样.嘿嘿.小改了一下.
0 请登录后投票
   发表时间:2006-12-24  
放在global里面是可以的,但是每个Context要加个Resource Link,可以到这里来看看:

http://tomcat.apache.org/tomcat-5.5-doc/config/context.html#Resource%20Links
0 请登录后投票
   发表时间:2006-12-24  
<ResourceLink name="jdbc/cqweb"
            global="jdbc/cqweb"
            type="javax.sql.DataSource" />

这个global的属性到底什么意思呢. 就是在全局使用时要使用的名字嘛?相当与name的一个别名?是否是这样写的?
将resource那一段放在globalresource里.然后
   <Context
            
            docBase="D:\web\cq"
            reloadable="true"
            workDir="D:\web\cq\work"
            debug="1"
            path="/cq"
crossContext="true"
            useNaming="true">
<ResourceLink name="jdbc/cqweb"
            global="jdbc/cqweb"
            type="javax.sql.DataSource" />
</Context>

  
0 请登录后投票
   发表时间:2006-12-24  
现在竟然报错:
Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'

可是我的tomcat/common/lib 下面有那三个包啊.本来单个还可以用的连接池.现在完全不能用了.郁闷.
0 请登录后投票
   发表时间:2006-12-24  
不是那样写的。我弄了一个小例子,希望对你有帮助。
在server.xml文件中:

  <GlobalNamingResources>
......
	<Resource name="jdbc/GLOBAL_DEMO" 
		auth="Container"
		type="javax.sql.DataSource"
		maxActive="20" 
		maxIdle="0" 
		maxWait="100000"
		username="admin" 
		password="" 					
		driverClassName="sun.jdbc.odbc.JdbcOdbcDriver"
		url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=c:\\jbproject\\flive_demo\\demo.mdb"
	/>
  </GlobalNamingResources>


在项目的context文件中(一般在${tomcat_home}/conf/catalina/localhost/目录下面):

<Context path="..." reloadable="..." docBase="..." workDir="..." >
<ResourceLink name="jdbc/FLIVE_DEMO"
            global="jdbc/GLOBAL_DEMO"
            type="javax.sql.DataSource" />
</Context>


在项目的web.xml文件中:

......
<resource-ref>
		<res-ref-name>jdbc/FLIVE_DEMO</res-ref-name>
		<res-type>javax.sql.DataSource</res-type>
		<res-auth>Container</res-auth>
	</resource-ref>
......
0 请登录后投票
   发表时间:2006-12-24  
谢谢楼上,有个问题,那个
在项目的context文件中(一般在${tomcat_home}/conf/catalina/localhost/目录下面)
  是不是要是一个和工程同名的一个xml文件
比如我的工程叫appkk  ,这个文件就应该叫做appkk.xml  是不是有这样的规定呢.
0 请登录后投票
   发表时间:2006-12-24  
  我如果在工程中使用这个连接,实际上还是找得<res-ref-name>jdbc/FLIVE_DEMO</res-ref-name>   这个名字了?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics