2017-03-08 58 views
3

我有mod perl 2代碼,它在PerlRequire加載的腳本中執行Apache::DBI->connect_on_init($dsn, $user, $passwd);Apache :: DBI-> connect_on_init數據庫連接未使用

但是,當處理請求時,做DBI->connect_cached($dsn, $user, $passwd)創建一個額外的連接,而不是使用在子init初創建的連接。 (使用DBI代替Apache :: DBI,因爲該代碼也用於非Apache環境。)

如何使其使用已經緩存的連接?

回答

2

設置$Apache::DBI::DEBUG=2表明由DBI創建的連接具有 額外屬性集;將該屬性添加到connect_on_init調用中可以重新使用 緩存的連接:

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