perl - Apache::DBI->connect_on_init 数据库连接未使用

标签 perl apache-dbi

我有 mod perl 2 代码,正在 PerlRequire 加载的脚本中执行 Apache::DBI->connect_on_init($dsn, $user, $passwd);

但是在处理请求时,执行 DBI->connect_cached($dsn, $user, $passwd) 会创建一个附加连接,而不是使用在子进程初始化时创建的连接。 (使用 DBI 代替 Apache::DBI,因为该代码也在非 Apache 上下文中使用。)

如何让它使用已经缓存的连接?

最佳答案

设置$Apache::DBI::DEBUG=2显示DBI创建的连接有一个 额外属性设置;将该属性添加到 connect_on_init 调用中使得 重用缓存的连接:

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

关于perl - Apache::DBI->connect_on_init 数据库连接未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42682116/

相关文章:

regex - Perl 中的正则表达式匹配计数

string - 在 perl 中获取字符串的 hahes 键

Perl: elsif, Python: elif, C/CPP/Java: else if

perl - 在 Perl 中删除超过 90 天的文件

html - 远程 IP 地址

postgresql - SET SESSION AUTHORIZATION 多用户 mod-perl2 连接缓存的安全设计