3

で接続の検証を無効にする際に問題がありますApache::DBIperldoc
から:

Apache::DBI->setPingTimeOut($data_source, $timeout)

これにより、接続を検証するための ping メソッドの使用が構成されます。タイムアウトを 0 に設定すると、常に ping メソッド (デフォルト) を使用してデータベース接続が検証されます。タイムアウトを 0 未満に設定すると、データベース ハンドルの検証が無効になります。

setPingTimeOutと同じ $data_source で呼び出してみましたconnect()が、うまくいきませんでした。ping を無効にできた人はいますか?

4

1 に答える 1

4

明確にするために、コードには次のものがあります。

# use a DSN without attribute settings specified within !
sub setPingTimeOut {
    my $class       = shift;
    my $data_source = shift;
    my $timeout     = shift;

    # sanity check
    if ($data_source =~ /dbi:\w+:.*/ and $timeout =~ /\-*\d+/) {
        $PingTimeOut{$data_source} = $timeout;
    }
}

「健全性チェック」に注意してください。したがって、大文字の 'DBI:' を含むデータ ソース名の ping タイムアウトは黙って無視されます。

于 2010-12-16T15:07:05.420 に答える