2

Web アプリケーションを次のように構成しようとしています。1 つの tomcat サーバー 2 つの mysql データベースをマスター/マスター レプリケーションでフェイルオーバー用に使用します。

また、c3p0 を使用してプールされた接続をセットアップすることに成功したため、リクエストごとに新しい接続を開くことを回避できます (フェイルオーバーが含まれていない場合)。

最初のデータベースが使用できない場合に、リクエストを 2 番目のデータベースにルーティングするために、jdbc コネクタによって提供されるフェイルオーバー サポートを使用したいと考えています。したがって、追加の構成パラメーターを提供するだけで、jdbc ドライバーのフェイルオーバー機能を使用しています。

現時点では、1 つのサーバーが使用できない場合、要求は 2 番目に使用可能なサーバーにルーティングされます。ただし、リクエストごとにデータベースで新しく開かれた接続で問題に直面しています。

接続プーリングと jdbc フェイルオーバーを組み合わせるとうまくいかないようです。

設定パラメータについてもアドバイスをお願いします

<bean id="mydataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"     destroy-method="close">
  <property name="driverClass" value="com.mysql.jdbc.Driver"/>
  <property name="jdbcUrl"  value="jdbc:mysql://localhost:3306,myOtherServer:3306/zeus?autoCommit=true&amp;autoReconnect=true&amp;autoReconnectForPools=true&amp;failOverReadOnly=false"/>
  <property name="user" value="root" />
  <property name="password" value="root" /> 

  <!-- these are C3P0 properties -->
  <!-- property name="acquireIncrement" value="${acquireIncrement}" /_-->
  <property name="minPoolSize" value="6" />
  <property name="maxPoolSize" value="10" />
  <property name="maxIdleTime" value="100" />
</bean>
4

0 に答える 0