2016-09-09 20 views
0

私たちのアプリケーションでは、C3P0PooledDataSourceによってデータソースを管理しており、設定はapplicationContext.xmlファイルで行われます。Spring-Hibernate複数のデータソースを1つのプールで管理します

<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> 

は今、展開時に作成された2つのプールがあり、それらのそれぞれが独自のminPoolSizeを有し、従って、それらの多くの接続が作成されています。 minPoolSize、maxPoolSizeなどの設定を1つのレベルで定義でき、すべてのデータソースがそれによって管理される方法はありますか。

答えて

0

2つの異なるデータベース/スキーム/接続プールへの接続を維持する単一のデータソースを持つように見えます。

もしそうなら、私はそれが可能ではないと思います。理由は、それが可能であると仮定しましょう。今、このデータソースを使用するアプリケーションは、クエリを実行する前に特定のデータベース/スキーマに対する接続であることがわかります。

+0

これは正しいです!しかし、私が望むのは、1つのプール構成によって管理される異なるデータソースです。プールラッパーを作成して2つの子プールを管理するのはどうでしょうか?同じBeanオブジェクトをxmlの別のBean宣言から参照することができれば、これを実現できますが、どうすればよいのか分かりません。 –

+0

@kapilgupta「xmlの別のBean宣言から同じBeanオブジェクトを参照できるかどうか」というステートメントを完全に取得するかどうかわかりません。 Beandef1.xmlという別のXMLファイルで宣言されているBean(beandef2.xmlから)を参照したいと考えているので、私はそれを解釈しています。もしそうなら、 ''を使って 'beandef2.xml'ファイルに' beandef1.xml'をインポートすることはできません。これに関する詳細は、[http://stackoverflow.com/questions/7711750/how-to-reference-a-bean-of-another-xml-file-in-spring](http://stackoverflow.com/questions/) 7711750/how-to-reference-a-bean-of-another-xml-file-in-spring) –

+0

いいえ、これは、単なる考えであった、同じ参照を共有することによって達成できるかどうかです。私はとにかく、1つの中央プールまたは親プールによって管理される子プールを取得する必要があります –

関連する問題