/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
Teste om $dbh fungerer
Fra : Morten P


Dato : 15-02-09 01:46

Jeg har et par dæmoner der starter med at åbne en forbindelse til MySQL
(DBI) og så venter de på en given handling indtræffer.

Men forbindelsen mellem Perl og MySQL når at time ud og så får man en fejl a
la "MySQL has gone away".

Det nytter ikke at teste om $dbh evalurerer til sand, for den er sand selvom
selve forbindelsen er defekt.

Kan man teste om den stadig fungerer på nogen måde inden man udfører det
ønskede kald?

Alternativt skal jeg lave en slags NOP ved med jævne mellemrum at læse fra
en tabel, men det er jo rodet...

Eller man skal udføre kaldet, parse retur værdien og genåbne hvis der står
"MySQL has gone away" men det virker også en smule "forkert" :)



 
 
Jesper Krogh (15-02-2009)
Kommentar
Fra : Jesper Krogh


Dato : 15-02-09 08:27

I dk.edb.programmering.perl, skrev Morten P:
> Jeg har et par dæmoner der starter med at åbne en forbindelse til MySQL
> (DBI) og så venter de på en given handling indtræffer.
>
> Men forbindelsen mellem Perl og MySQL når at time ud og så får man en fejl a
> la "MySQL has gone away".
>
> Det nytter ikke at teste om $dbh evalurerer til sand, for den er sand selvom
> selve forbindelsen er defekt.

$dbd->ping?

Jesper

--
../Jesper Krogh, jesper@krogh.cc, Jabber ID: jesper@jabbernet.dk


Morten P (15-02-2009)
Kommentar
Fra : Morten P


Dato : 15-02-09 13:03


"Jesper Krogh" <jesper@krogh.cc> wrote in message
news:gn8g4l$rjb$1@shrek.krogh.cc...
>I dk.edb.programmering.perl, skrev Morten P:
>> Jeg har et par dæmoner der starter med at åbne en forbindelse til MySQL
>> (DBI) og så venter de på en given handling indtræffer.
>>
>> Men forbindelsen mellem Perl og MySQL når at time ud og så får man en
>> fejl a
>> la "MySQL has gone away".
>>
>> Det nytter ikke at teste om $dbh evalurerer til sand, for den er sand
>> selvom
>> selve forbindelsen er defekt.
>
> $dbd->ping?

Den får jeg ikke helt til at fungere [1]

Når jeg anvender den som nedenfor får jeg:

Uncaught error: dbih_getcom handle DBI::db=HASH(0x8b46eec) is not a DBI
handle (has no magic) at ...


Betjener jeg den forkert?



[1]

sub db_open
{
my $self = shift;

return if defined $self->{'dbh'} && $self->{'dbh'}->ping();

# open DB ...

$self->{'dbh'} = $dbh;
}



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste