[pgcluster: 16] Re: クラスタサーバの復旧がうまくいきません

Takegami, Takashi takegami @ isp.co.jp
2004年 1月 8日 (木) 14:54:45 JST


竹上と申します。

■update後のselectについて、私もその後調査いたしました。

[再確認]
  - 更新系トランザクションには、「begin」を用いず「set autocommit
  =off」を用いています。

  - 更新系トランザクションの終了は、commitをし、その後「set
  autocommit=on」をしています。

  - 更新系トランザクションの終了後、select文を実行しますと、レプリケ
  ータサーバのデバッグログの出力を見ると「cmdSts = T」となってお
  ります。

  - 以上の確認は、Javaコードを書きJDBCを用いてDBに接続しました。


[手動での確認]
  - 私も手動でpsqlを試してみました。
  1. DB=# select 1;                ->レプリケートされない。
  2. DB=# set autocommit = off;    ->レプリケートされる。
  3. DB=# select 1;                ->レプリケートされる。
  4. DB=# commit;                  ->レプリケートされる。
  5. DB=# set autocommit = on;     ->レプリケートされる。
  6. DB=# select 1;                ->レプリケートされる。
  でした。


[./src/backend/libpq/replicate.c を一部変更しての確認]

  - 下記の変更をしてみたところ、update後のselect文はレプリケート
  されませんでした。

  - 上記ファイルの1106行のところ
 「変更前」
         if ((cmdType == CMD_TYPE_COMMIT ) ||
                 (cmdType == CMD_TYPE_ROLLBACK ))
         {

 「変更後」
         if ((cmdType == CMD_TYPE_COMMIT ) ||
                 (cmdType == CMD_TYPE_ROLLBACK ) ||
                 (autocommit == true ))
         {

  - 上記の変更にて対処してよいのでしょうか?


以上です。よろしくお願い致します。


ps 早速のお返事ありがとうございました。> mitani様。


At 04/01/08 13:51, you wrote:
>谷田です。
>
>On Wed, 07 Jan 2004 17:44:03 +0900
>"Takegami, Takashi" <takegami @ isp.co.jp> wrote:
>
>
> > ■上記の2点に関係すると思われる状況
> >
> >  - 更新系の処理(insert, update)が一度行われた後は、参照系の処理(sele
> >   ct)もレプリケートされている現象を確認しました。
> >  
> >  【確認項目】
> >   - レプリケータをデバックモードで起動して出力されるログにて確認。
> >   - 更新系の処理が行われる前は、参照系の処理はレプリケータのログに
> >    出力されません。
> >   - 更新系の処理が行われると、その後は、同じ参照系の処理もレプリケ
> >    ータのログに出力されました。
> >   - 更新系の処理は、トランザクションを発行しており、必ずcommitもし
> >    くはrollbackしています。
> >   - 参照系の処理は、トランザクションを発行していません。autocommit
> >    モードはONにしています。
> >   - DBへのコネクションはプーリングしています。毎回の接続/切断はして
> >    いません。
>
>これについて追試を行ってみたのですが、手元でpsql等を使ってみても再現しま
>せん。以下のような方法であっていたでしょうか?
>
>・接続する
>・とりあえずselect -> レプリケーションされない -> ○
>・更新系トランザクション -> レプリケーションされる -> ○
>・さらにselect -> レプリケーションされる -> ×
>
>--
>TANIDA Yutaka <tanida @ sra.co.jp>
>

---
From; Takegami, Takashi
E_mail; takegami @ isp.co.jp




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