[pgcluster: 1043] JDBC経由でnow()関数を利用したときの動作について

Shiroyuki Inooka inooka @ cyphertec.co.jp
2010年 2月 20日 (土) 17:12:00 JST


こんにちは。イノオカです。

先日に引き続きPgClusterの動作について
確認させて頂きたいことがございます。

下記構成で、
now()関数を利用すると、本来cluster1,cluster2とも
同じ時刻が設定されるはずですが、
Webサーバからjdbc経由(コネクションプールを利用)で利用すると
cluster2だけ最初に取得した時刻がずっと設定されるようになって
しまいます。

(例)now()関数を利用したinsert文 A,B,Cを数秒おきに連続で3回投入した場合。

   cluster1の場合、
   以下のようにそれぞれの時刻で取得した値が設定されます。
    A:2010-02-20 15:00:00
    B:2010-02-20 15:00:05
    C:2010-02-20 15:00:10

   cluster2の場合、
   以下のようにB,Cでも最初に取得されたAの時刻がそのまま設定されてしまいます。
    A:2010-02-20 15:00:00
    B:2010-02-20 15:00:00
    C:2010-02-20 15:00:00

こちらは想定される動作なのか、また回避方法は無いかご教授頂ければと思います。

■構成
Webサーバ:apache,tomcat(jdbc経由でDBサーバ1へアクセス)
DBサーバ1:cluster1,replicate
DBサーバ2:cluster2

DBサーバ1にのみWebサーバからのアクセスがくるようにし、
DBサーバ1とDBサーバ2はクロスケーブルで接続して、
レプリケーションを行っております。
(DBサーバ2はネットワークには接続していない状態)

■バージョン
OS:CentOS5.3
PgCluster:pgcluster-1.9.0rc5


お手数お掛けしますが、ご回答よろしくお願いいたします。




pgcluster メーリングリストの案内