在对数据库连接消失的 mod_perl 进行压力测试时,我遇到了一个问题。我怀疑进程正在共享数据库连接,从而导致了问题。
但是我已经遵循了 Apache::DBI 的所有说明,但无法弄清楚这一点。
我在子进程中而不是在 startup.pl 中建立连接。但是当我检查每个子进程从 DBI->connnect 返回的 $dbh 时,每个 httpd 进程的地址都是相同的。首先,如果这工作正常并为每个进程重新连接,那么 DBI->connect 返回的地址对于每个子进程是否应该不同?我假设是这样,但据我所知,DBI 中的核心 C 代码(dbih_setup_handle)正在管理它并返回相同的地址。所以也许我不明白重新连接孩子意味着什么。
如果 $dbh 句柄相同,我是否可以正确重新连接?