[pgsql-jp: 33712] Re: pgpool の接続が増え続けます

Tatsuo Ishii t-ishii @ sra.co.jp
2004年 7月 20日 (火) 22:09:45 JST


石井です.

> 芋野です。
> レプリケーションで引っかかっています。
> 以下が pgpool.conf です。これら以外はデフォルトのままです。
> ------------------------------
> allow_inet_domain_socket = 1
> port = 5432
> backend_host_name = '192.168.0.240'
> backend_port = 5432
> secondary_backend_host_name = '192.168.0.202'
> secondary_backend_port = 5433
> replication_mode = true
> replication_strict = true
> load_balance_mode = true
> ------------------------------
> それぞれの PSQL は 共に Ver.7.4.2 で、起動前にメインの
> /usr/local/pgsql/data/ 以下を rsync を使ってセカンダリー
> の /usr/local/pgsql/data/ へコピーしました。その後それぞ
> れでの接続は問題ありませんでした。
[中略]
> 何かフィールドのサイズが違うといったエラーのようですが、幾度も
> rsync をやり直してみましたが同じでした。ただ、Linux の version は
> マスター側が Red Hat Linux 9 で、セカンダリー側が Red Hat Linux 7.3
> という違いはあります。それと、DBには2バイト文字の表名、カラム名
> がバンバン使ってあります。

マスタとセカンダリのOSが違うのですね.そのせいで,クライアントから投げ
られたバージョン情報の問い合わせに対する応答文字列の長さが異なっている
のが問題の直接の原因です.ただし,もちろんそういう場合でもpgpool は正
しく動かなければならないわけで,バグ修正パッチを付けましたので,試して
いただけますか?

> > ところで新しい libpq.dll ってどこにあるんでしょう。
> > PostgreSQL のソースに含まれているようですが
> > これを、例えば、bcc32.mak でも使ってコンパイル
> > すれば出来るものなんでしょうか。その場合日本語
> > 対応等に問題はないものでしょうか。

7.3以降であれば日本語対応はデフォルトで組み込まれていますので問題あり
ません.もちろん7.4でもいいのですが,CSEの方が大丈夫かどうかはよくわか
りません.

ちなみに,私はWindows上でのコンパイルについてはよくわかりません
(PowerGresを開発するときにちょっとやっただけ).
--
Tatsuo Ishii

---------------------------------------------------------------------
*** pool_process_query.c	19 Jul 2004 01:23:58 -0000	1.27
--- pool_process_query.c	20 Jul 2004 11:16:50 -0000
***************
*** 766,772 ****
  		if (REPLICATION && size1 > 0 && (mask & nullmap1[i/8]))
  		{
  			/* read and discard secondary data */
! 			if (pool_read2(SECONDARY(backend), size) == NULL)
  				return POOL_END;
  		}
  
--- 766,772 ----
  		if (REPLICATION && size1 > 0 && (mask & nullmap1[i/8]))
  		{
  			/* read and discard secondary data */
! 			if (pool_read2(SECONDARY(backend), size1) == NULL)
  				return POOL_END;
  		}
  
***************
*** 874,880 ****
  		if (REPLICATION && size1 > 0 && (mask & nullmap1[i/8]))
  		{
  			/* read and discard secondary data */
! 			if (pool_read2(SECONDARY(backend), size) == NULL)
  				return POOL_END;
  		}
  
--- 874,880 ----
  		if (REPLICATION && size1 > 0 && (mask & nullmap1[i/8]))
  		{
  			/* read and discard secondary data */
! 			if (pool_read2(SECONDARY(backend), size1) == NULL)
  				return POOL_END;
  		}
  
---------------------------------------------------------------------



pgsql-jp メーリングリストの案内