MySQL Connector/J フェイルオーバー機能の概要とバグ

クラスタで使用するConnector/Jのフェイルオーバー機能はJDBC接続文字列を以下のようにすることで利用できます.

jdbc:mysql://host1:port1,host2:port2,host3:port3,host4:port4/databaseName?autoReconnect=true&roundRobinLoadBalance=true&failOverReadOnly=false

詳しい説明はここには書きません.要点のみ.

  • フェイルオーバー処理はトランザクションを引き継がない.autocommitモードで使えということらしい.
  • 上で言うところのhost1が優先して接続され,Sticky.左に書かれている接続先からということ.右に行くほど待機系扱い.

ちなみに今日現在の最新版ver3.1.7およびスナップショット20050221版で確認しましたが,roundRobinLoadBalanceに関するバグがあります.一応修正パッチ案と共にバグ報告だしておきました.

http://bugs.mysql.com/bug.php?id=8643

さて,Mark Matthewsは何と言うか.