在Perl的DBI连接方法中设置keepalive的任何方法

Posted

技术标签:

【中文标题】在Perl的DBI连接方法中设置keepalive的任何方法【英文标题】:Any way to set keepalive in DBI connect method in Perl 【发布时间】:2013-08-13 00:46:55 【问题描述】:

我正在使用 DBI 和 DBD::Pg 连接到 Postgres 数据库(实际上是 AWS 中的 RedShift)。我遇到的一个问题是我找不到指定keepalive 选项的方法。不过,我可以在 JDBS 上找到一些说明。本质上,我想实现保持我的客户端和 RedShift 之间的连接,直到任何一方明确断开连接(现在它被防火墙断开,因为当某些操作需要一段时间时没有活动)。

【问题讨论】:

【参考方案1】:

DBI 将其留给各个 DBD 模块,其中许多模块并未解决此问题。特别是对于DBD::Pg,我看到您可以将options 参数传递给connect,但我找不到任何似乎相关的文档选项。

DBI 确实为每个数据库句柄提供了一个ping 方法,如果连接有效则返回 0,否则返回非 0。您可以使用它来检查连接是否仍然有效,然后在需要时重新连接。

【讨论】:

以上是关于在Perl的DBI连接方法中设置keepalive的任何方法的主要内容,如果未能解决你的问题,请参考以下文章

24-Perl 数据库连接

Perl 连接 MySQL,DBI怎么安装?

通过DBI从Access到R的连接

Perl:在不死的情况下捕获错误

perl中设置POST登录时的重定向

为啥回滚方法不能用于 DBI 句柄?