0

この質問は、perl、apache、Apache::DBI、およびデータベース (MySQL、SQLite など) を使用する Web ベースのアプリケーションに関するものです。

永続的なデータベース接続を作成するために Apache::DBI が使用されることはわかっています。これらの接続は、Apache Web サーバーが起動してからシャットダウンするまでメモリ内に存在します。

私の質問は次のとおりです: Apache プロセスの開始と終了の間の任意の時点で永続的な db 接続を作成することは可能ですか? Apache Web サーバー プロセスの存続期間中、持続的な接続を維持したくありません。

Apache Web サーバーの起動後はいつでも永続的な接続を作成する必要があります。また、Apache Web サーバーがシャットダウンされる前に、永続的な接続をいつでも終了する必要があります。

4

1 に答える 1

0

私はそれを行う方法についてよくわかりません。ただし、特に接続を開始して使用し、終了するモジュールを作成することをお勧めします。その内部では、DBI 関数を呼び出す (mysql サーバーにリクエストを送信する) すべてのユーザーに共通する、たとえば $dbh などのスカラーとして接続を取得します。


package myBDDConnection;
use DBI;
our @EXPORT_OK = qw(&Query);

our $dbh = Connect();

sub Connect(){
my $dbh = DBI->connect(...);
...
return $dbh;
}
sub Query() {
 if(!$dbh) {$dbh=Connect()}
  //then perform query
}

sub Close(){
 $dbh->close() //or finish, i'm not sure
}

次に、他のモジュールで myBDDConnection をインポートし、前のモジュールの Query 関数を使用してクエリを実行します。

于 2010-07-29T07:28:38.410 に答える