更改 Tomcat 数据源池中的目录

Posted

技术标签:

【中文标题】更改 Tomcat 数据源池中的目录【英文标题】:Change catalog in Tomcat DataSource pool 【发布时间】:2016-03-31 14:09:36 【问题描述】:

如何更改 Tomcat 数据源池中的数据库目录? 我试过了:

datasource.getConnection().setCatalog("newcatalog");

但它不起作用,可能是因为我没有更改所有连接的目录而不是新连接的目录。

【问题讨论】:

定义“不起作用”:您是否遇到异常,或者什么也没发生。也就是说,从连接池更改连接上的目录是一件冒险的事情。如果某些连接池实现不允许它,我不会感到惊讶。 只是不会改变目录。 【参考方案1】:

根据官方 Tomcat 文档的JDBC Data Sources 部分,您可以在DataSource 的配置中使用defaultCatalog 参数。

例如:

<Resource name="jdbc/MyDatasourceName"
        auth="Container"
        type="javax.sql.DataSource"
        username="dbusername"
        password="dbpassword"
        driverClassName="org.hsqldb.jdbc.JDBCDriver"
        url="jdbc:hsqldb:myDatabase"

        <!-- use the following catalog -->
        defaultCatalog="newcatalog"
/>

有关可用属性的详细列表,请查看 Tomcat JDBC Connection Pool 文档的 Common Attributes 部分,该部分对 defaultCatalog 的描述如下:

defaultCatalog -- (String) 此池创建的连接的默认目录。

希望对你有帮助。

【讨论】:

好的,我会尝试,但我还需要一种方法来刷新所有已打开的连接,否则其中一些可能有旧目录

以上是关于更改 Tomcat 数据源池中的目录的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat数据源--DataSource&Connection Pool

如何更改tomcat7及以上版本内存设置

如何增加tomcat线程池中的线程数?

在 tomcat 服务器上使用连接池时的数据同步问题

org.apache.tomcat.util.bcel.classfile.ClassFormatException:常量池中的无效字节标记:15

数据源,连接池,连接,jndi