3

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

但是在处理请求时,所做DBI->connect_cached($dsn, $user, $passwd)的是创建一个额外的连接,而不是使用在子初始化时创建的连接。(使用 DBI 代替 Apache::DBI 因为该代码也用于非 apache 上下文。)

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

4

1 回答 1

2

Setting$Apache::DBI::DEBUG=2显示DBI创建的连接有额外的属性集;将该属性添加到 connect_on_init 调用可以重用缓存的连接:

Apache::DBI->connect_on_init($dsn, $user, $passwd, {
    dbi_connect_method => 'Apache::DBI::connect'
});
于 2017-03-08T21:20:08.030 回答