1

私は、レコードセットを返すストアド プロシージャにデータをプラグインする非常に基本的なアプリを持っています。私は「タイムアウト」と思っていたものを経験しています。しかし、これが実際に起こっていることであるとは、もはや確信が持てません。その理由は、DBA と私が SQL Server スポットライトを見て、ストアド プロシージャの処理がいつ終了したかを確認したからです。プロシージャが処理を終了してレコードセットを返すとすぐに、ColdFusion ページが「タイムアウト」エラーを返しました。手順に1分以上かかる場合は常に、これが一貫していることがわかります。これを証明するために、私はこれ以上のストアド プロシージャを作成しました。

BEGIN

  WAITFOR DELAY '00:00:45';
  SELECT TOP 1000 * 
  FROM AnyTableName

END

59 秒間実行すると、ColdFusion に結果が返されます。1 分に変更すると、次のようになります。

WAITFOR DELAY '00:01';

cfstoredprocタイムアウト エラーが発生します。同じサーバー、異なるデータベース/データソース上の ColdFusion の異なるインスタンスでこれを実行しようとしました。さて、奇妙なのは、1 分以上実行して結果を返す他のプロシージャがあることです。ColdFusion 10 を使用してデスクトップでローカルにこれを試しても、同じ結果が得られました。この時点で、探す場所がなくなったので、他のことを試すために手を差し伸べています. データソース接続のタイムアウトも増やしましたが、役に立ちませんでした。タイムアウト属性を使用して ColdFusion 10 を試してみましたが、運もありませんでした。一貫しているのは、クエリが完了するとタイムアウト エラーが表示されることです。

また、WAITFOR を追加してみましたがcfquery、同じ結果になりました。59 秒に設定すると機能しましたが、1 分に変更するとタイムアウトしました。トップ1を選択するようにSQLを変更できますが、結果に違いはありません。

4

2 に答える 2

3

コメントによると、リクエストのタイムアウトが 60 秒に設定されているようです。

cfsettingを使用して、必要に応じてタイムアウトを延長します。

<cfsetting requesttimeout = "{numberOfSeconds}">
于 2013-04-12T19:16:45.743 に答える
0

すべてのページのデフォルトのタイムアウトは 60 秒です。十分でない場合は cfadmin でこれを変更する必要がありますが、ほとんどのページはこれほど長く実行されません。このような混乱を避けるために、cfadmin とそのすべての設定をよく理解してください。前述のように、cfsetting タグを使用して特定のページを上書きします。

于 2013-04-13T13:51:24.540 に答える