3

Zend Framework コンポーネントを使用して Microsoft SQL Server 2008 データベースにクエリを実行する PHP アプリケーション (Linux でホスト) があります。PHP アプリケーションは、信頼できるインターネット接続を備えたデータセンターでホストされていますが、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 の接続のタイムアウト オプションも見つかりません。

4

2 に答える 2

3

PDO::ATTR_TIMEOUT 属性を使用してみてください。pdo_dblib のデフォルト値が何であるかはわかりません。ドライバーによって異なる可能性があります。

于 2013-05-17T06:33:20.710 に答える