3

ここで説明されているように、春のルーティングデータソースを使用していますが、うまくいきます。ここで、接続プーリング (Apache DBCP) を追加します。基本データ ソースを接続プール データ ソースに変更しました。まあ、それは動作しません。

サーバーの起動時に、接続プールが発生していることを確認し、Apache のコードをデバッグできますが、コードを介して DB にアクセスしようとすると、ルーティング データ ソースに移動し、そこから DriverManager クラスに移動します。接続を取得する - Apache のコードを完全に無視します。

<bean id="catalogDataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="${jdbc.driverClass}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.user}" />
    <property name="password" value="${jdbc.pwd}" />
</bean>

<bean id="pool" class="org.apache.commons.pool.impl.GenericObjectPool">
    <property name="minEvictableIdleTimeMillis"><value>300000</value></property> 
    <property name="timeBetweenEvictionRunsMillis"><value>60000</value></property> 
</bean>

<bean id="dsConnectionFactory" class="org.apache.commons.dbcp.DataSourceConnectionFactory">
    <constructor-arg><ref bean="catalogDataSource"/></constructor-arg>
</bean>

<bean id="poolableConnectionFactory" class="org.apache.commons.dbcp.PoolableConnectionFactory">
    <constructor-arg index="0"><ref bean="dsConnectionFactory"/></constructor-arg>
    <constructor-arg index="1"><ref bean="pool"/></constructor-arg>
    <constructor-arg index="2"><null/></constructor-arg>
    <constructor-arg index="3"><null/></constructor-arg>
    <constructor-arg index="4"><value>false</value></constructor-arg>
    <constructor-arg index="5"><value>true</value></constructor-arg>
</bean>

<bean id="pooledDS" class="org.apache.commons.dbcp.PoolingDataSource" depends-on="poolableConnectionFactory">
    <constructor-arg><ref bean="pool"/></constructor-arg>
</bean>

<bean id="routingDataSource" class="something that derived from RoutingDataSource">
   <property name="defaultTargetDataSource" ref="pooledDS"/>
   <property name="targetDataSources">
   <map key-type="java.lang.Integer">
  </map>
   </property>
</bean>

助けてください - 私は何を間違えましたか?

4

0 に答える 0