Spring-Hibernate多个数据源由1个池管理

时间:2016-09-09 05:19:17

标签: hibernate spring-mvc datasource

在我们的应用程序中,我们通过C3P0PooledDataSource管理数据源,并在applicationContext.xml文件中完成配置。

    <bean id="parentDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" abstract="true">
    <property name="acquireIncrement" value="${jdbc.acquireIncrement}" />
    <property name="minPoolSize" value="${jdbc.minPoolSize}" />
    <property name="maxPoolSize" value="${jdbc.maxPoolSize}" />
    <property name="maxIdleTime" value="${jdbc.maxIdleTime}" />
    <property name="maxIdleTimeExcessConnections" value="${jdbc.maxIdleTimeExcessConnections}" />
</bean>
<bean id="ds1" parent="parentDataSource" singleton="true">
        <property name="driverClass" value="${ds1.jdbc.driver}" />
        <property name="jdbcUrl" value="${ds1.jdbc.url}"/>
        <property name="user" value="${ds1.jdbc.user}" />
        <property name="password" value="${ds1.jdbc.password}" />   
    </bean>
 <bean id="ds2" parent="parentDataSource" singleton="true">
    <property name="driverClass" value="${ds2.jdbc.driver}" />
    <property name="jdbcUrl" value="${ds2.jdbc.url}"/>
    <property name="user" value="${ds2.jdbc.user}" />
    <property name="password" value="${ds2.jdbc.password}" />   
</bean>

现在,在部署时,创建了两个池,每个池都有自己的minPoolSize,因此正在创建许多连接。 有没有办法我们可以在一个级别定义minPoolSize,maxPoolSize等的配置,所有数据源都将通过它进行管理。

1 个答案:

答案 0 :(得分:0)

看起来您希望拥有维护与两个不同数据库/方案/连接池的连接的单个数据源。

如果是这样,我认为这是不可能的。原因是,让我们假设这是可能的,现在使用此数据源的应用程序在触发查询之前如何知道该连接是针对特定数据库/模式的。

相关问题