[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 メーリングリストの案内