2010-07-29 5 views
0

이 질문은 perl, apache, Apache :: DBI 및 데이터베이스 (MySQL, SQLite 또는 기타)를 사용하는 웹 기반 응용 프로그램과 관련이 있습니다.영구적 인 아파치를 선택적으로 시작하고 끝내는 방법 :: 클라이언트/브라우저에서 perl을위한 DBI?

아파치 :: DBI가 영구적 인 db 연결을 만드는 데 사용된다는 것을 알고 있습니다. 이러한 연결은 Apache 웹 서버가 시작될 때부터 종료 될 때까지 메모리에 있습니다.

내 질문 : 아파치 프로세스의 시작과 끝 사이의 임의의 시간에 영구적 인 db 연결을 만들 수 있습니까? 우리는 Apache 웹 서버 프로세스의 수명 내내 지속적인 연결을 원하지 않습니다.

Apache 웹 서버가 시작된 후에 언제든지 영구 연결을 만들어야합니다. 그리고 우리는 아파치 웹 서버가 종료되기 전에 언제든지 영구 연결을 종료해야합니다.

답변

0

나는 그것을하는 방법에 대해 꽤 확신하지 못합니다. 하지만 모듈을 만들 것을 제안합니다. 특별히 연결을 시작하려면 을 사용하고 끝내십시오. 그 안에 dbl 함수를 호출하는 모든 사람들에게 공통적으로 쓰이는 $ dbh라고하는 스칼라 연결이 있습니다 (MySQL 서버에 요청하는 것).


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을 가져오고 이전 모듈의 쿼리 기능을 통해 쿼리를 수행합니다.

+0

Benzebuth 안녕하세요, 귀하의 솔루션을 몇 가지 요청 및 서버와 클라이언트 간의 응답을 사용할 수있는 영구 연결을 만들지 않습니다 것 같아요. 나는 해결책이 아파치 :: DBI를 포함해야한다고 생각한다. – Vijey

+0

음 ... 나는 mod_perl을 사용하고 아파치 시작시 모듈을 적재한다면 그렇게 될 것이라고 생각한다. 하지만 내가 틀릴 수도 있습니다. – benzebuth

+0

내 편이라면 테스트를 해보겠습니다. 나중에 어떻게 작동하는지 알려주십시오. 조금만 살펴본 후 – benzebuth