Ich brauche ein Array mit DBI-Verbindungsobjekte zu teilen mit anderen Prozess mit Shared Memory serialisieren. Aber Deserialize funktioniert nicht.Serialize und Deserialize perl DBI-Verbindungsobjekt
Verwendung speicherbare qw/Frost Tauwetter /;
my @connections;
for(my $c = 0;$c < 5;$c++) {
my $conn = DBI->connect($dsn,$user,$password,{'AutoCommit' => 1, 'RaiseError' => 1, 'PrintError' => 0});
push(@connections,$conn);
}
my $shm = freeze(@connections);
my $obj = thaw($shm);
Return-Fehler: Globales Symbol
"$drh" requires explicit package name (did you forget to declare "my $drh"?) at (eval 33) line 6.
Das klingt nach einer schrecklichen Idee. Außerdem, wo ist der Rest Ihres Codes? – melpomene
Mein Code hat 10 Pakete (Klasse). Meine Anwendung benötigt optimierte Nummernverbindungen mit der Datenbank. Meine Anwendung begann mit einer Verbindung mit der Datenbank, es gab 100 Gabeln, die Verbindungen teilten. Wenn ein Kind eine Verbindung öffnet, teilt es die Verbindung mit dem übergeordneten und anderen Prozess. Ich habe die gleichen Semaphore verwendet, um den Zugriff auf die Verbindungen zu kontrollieren. –
Könnte ich Ihnen senden? –