[pgpool-general-jp: 137] Re: DBIx::Class::Schemaから接続した場合に、縮退モードに入らない
hoshiba hisanari
hoshiba @ jp.fujitsu.com
2007年 5月 26日 (土) 15:22:17 JST
こんにちは。
干場ともうします。
表題の件について発生条件が判りました。
■発生条件
トランザクション内で、prepareを用いたselectで不整合を検出した場合は
縮退運転に入らない
■下記の3種類のスクリプトを用いテストしました。
1.DBIを使って、単純にselectを実行
→ 縮退運転に入る
2.prepareを用いてselectを実行
→ 縮退運転に入らない(問題の現象が再現)
この条件ですと、非常に多くのシステムが合致すると思いますので、今まで
問題になっていないところを見ると、何か別の要因もからんでいるのではない
かと考えております。
同様の経験をされた方はいらっしゃいませんでしょうか?
以下、テストで用いたスクリプトです。
select * from tablename WHERE id=xxxxxxで、不整合の発生しているレコード
を選択いたします。
1.DBIを使って、単純にselectを実行
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
→ 縮退運転に入る
#!/usr/local/bin/perl
use DBI;
my $DB_DSN = 'dbi:Pg:dbname=xxxx;host=localhost;port=5433';
my $DB_USER = 'xxxx';
my $DB_PASS = 'xxxx';
my $dbh;
unless ($dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASS)){
die "Can't connect to $DB_DSN: $DBI::errstr\n";
}
my $select_ref = $dbh->selectall_arrayref("select * from tablename WHERE id=xxxxxx");
foreach my $ref (@{$select_ref}){
print "$ref->[0] \n";
print "$ref->[1] \n";
}
2.トランザクション内でprepareを用いてselectを実行
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
→ 縮退運転に入らない(問題の現象が再現)
#!/usr/local/bin/perl
use DBI;
my $DB_DSN = 'dbi:Pg:dbname=xxxx;host=localhost;port=5433';
my $DB_USER = 'xxxx';
my $DB_PASS = 'xxxx';
my $dbh;
unless ($dbh = DBI->connect($DB_DSN, $DB_USER, $DB_PASS)){
die "Can't connect to $DB_DSN: $DBI::errstr\n";
}
$dbh->{AutoCommit} = 0;
$dbh->{RaiseError} = 1;
my $sth = $dbh->prepare("select * from tablename WHERE id= ?");
$sth->bind_param(1, 'xxxxxx');
my $select_ref = $sth->execute;
foreach my $ref (@{$select_ref}){
print "$ref->[0] \n";
print "$ref->[1] \n";
}
$dbh->commit;
Date: 2007/05/26 02:06
From: hoshiba hisanari <hoshiba @ jp.fujitsu.com>
Reply-To: pgpool-general-jp @ sraoss.jp
To: pgpool-general-jp @ sraoss.jp
Subject: [pgpool-general-jp: 136] DBIx::Class::Schemaから接続した場合に、縮退モードに入らない
Date: Sat, 26 May 2007 02:06:14 +0900
>こんにちは。
>干場と申します。
>
> pgpool version 3.2をレプリケーションモードで動作させております。
>
> 現在、データベースに不整合が発生し、縮退運転を期待しているタイミングで
>動作が変わらない現象が発生しています。
以上よろしくお願いいたします。
--
(2007年3月20日付けで職制が変更になりました)
株式会社 富山富士通
ビジネスソリューション統括部 基盤サービス部
干場久大(Hisanari Hoshiba)
TEL:076-455-3131(内線:7576-8154) FAX:076-455-0901
pgpool-general-jp メーリングリストの案内