2017-03-08 2 views
3

Ich habe mod Perl 2 Code, der Apache::DBI->connect_on_init($dsn, $user, $passwd); in einem Skript von PerlRequire geladen wird.Apache :: DBI-> connect_on_init Datenbankverbindung unbenutzt

Wenn Sie jedoch eine Anfrage bearbeiten, erstellt DBI->connect_cached($dsn, $user, $passwd) eine zusätzliche Verbindung, die nicht die unter child init erstellte verwendet. (DBI wird anstelle von Apache :: DBI verwendet, da dieser Code auch in Nicht-Apache-Kontexten verwendet wird.)

Wie kann ich die bereits zwischengespeicherte Verbindung verwenden?

Antwort

2

Einstellung $Apache::DBI::DEBUG=2 zeigt, dass die von DBI erstellte Verbindung ein zusätzliches Attribut gesetzt hat; Durch das Hinzufügen dieses Attributs zum connect_on_init-Aufruf wird die zwischengespeicherte Verbindung wiederverwendet:

Apache::DBI->connect_on_init($dsn, $user, $passwd, { 
    dbi_connect_method => 'Apache::DBI::connect' 
});