2007年12月6日木曜日

Connector/JのReplicationDriverとコネクションプールの問題が解決

要するに、RoundRobinLoadBalancefailOverReadOnly=trueの問題でした。

  • JDBC URLのホスト部にホストを複数書いたときに、先頭以外のホストが選ばれると、そのコネクションはfailover状態に設定される。
  • failover状態になると、failOverReadOnlytrueなら当然そのコネクションはReadOnlyなコネクションになる。
  • この状態(failover&failoverReadOnly=true)になると、setReadOnly(false)しても書き込み可能にならないので書き込もうとすると例外が発生する。
  • そんなコネクションがc3p0やらdbcpでプールされるが、書き込みたいときに書き込み可能コネクションがとれるとは限らない。

解決策の案
プールを別にする



0 件のコメント:

コメントを投稿