我们有一个 PHP 应用程序(托管在 Linux 上),它使用 Zend Framework 组件来查询 Microsoft SQL Server 2008 数据库。PHP 应用程序托管在具有可靠 Internet 连接的数据中心中,但 SQL Server 数据库位于 VPN 连接的远端,该连接会定期断开。
我们遇到的问题是,在对 SQL 服务器进行查询时,偶尔会发生 VPN 退出。发生这种情况时,我们的应用程序最多可以等待 2 小时,然后才最终引发以下异常:
SQLSTATE[HY000]: General error: 20004 Read from the server failed [20004] (severity 9) [(null)]
我想做的是设置一个大约 2-3 分钟的整体查询超时和/或读取超时,以便应用程序更早地获得异常并从中恢复而不会阻塞 2 小时。
我们正在使用 pdo_dblib 扩展连接到 SQL Server,并且我已经浏览了 php.net 文档,但我也找不到任何用于连接 php.ini 的超时选项。