問題タブ [command-timeout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - CommandTimeout プロパティは、SQL ステートメントのタイムアウト引数をオーバーライドしますか
以下のC#コードを使用してDBからストアドプロシージャを取得する場合
ReadQueue
DB の手順:
コードからコマンドを実行すると、タイムアウトは 0 または 120 秒になりますか?
ありがとうございました。
c# - SqlCommand の CommandTimeout を高い値に設定すると、悪影響はありますか?
デフォルトのタイムアウト値よりも時間がかかると、ストアド プロシージャでランダムな問題が発生したようです。ここでそのことを知らされました。
それで値を大きくしたところ、効果があったようです。
しかし、疑問に思います: クエリや操作に時間がかかる場合に備えて、常に非常に高い数値にしないのはなぜですか? MAXだからと言ってそんなに時間はかからないですよね?
それが事実である場合 (私は想像します)、なぜデフォルト値が非常に低い (30 秒だと思います) のでしょうか?
アップデート
もともとSqlCommandのCommandTimeoutの値を300(5分)にしていたのですが、それで「Context Switch Deadlock occurred」になってしまいました。そこで私はそれを 120 (2 分) に減らしました。いくつかのテストで「タイムアウトが期限切れになりました」が1回発生しましたが、まったく同じ範囲を再試行すると、2回目は正常に完了したため、「それらの1つ」にすぎないと思います-120では十分でない場合がありますタイムアウトですが、300 は明らかに多すぎます。IOW、この少なすぎるものと多すぎるもののバランスをとる行為は、「正確な科学」ではないようです.
c# - CommandTimeout のデフォルト値をグローバルに変更する
古いソフトウェアの一部を新しいサーバーに移行しました。以前は SQL Server 2008 Enterprise を使用していましたが、現在は新しいマシンで SQL Server 2014 Enterprise を使用しているため、より高速になるはずです。
古いソフトウェアはレガシー ソフトウェアであり、有効期限が近づいているため、修正にあまり力を入れたくありません。しかし、何らかの理由で、エラー メッセージが表示されるデータベースに対して SQL クエリを実行している C# 関数があります。
タイムアウトになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。
私が読んだのは、を使用してタイムアウト時間を延長する必要があるということだけCommandTimeout
です。しかし残念ながら、すべてが「context connection = true」で実行されます。したがって、タイムアウトを変更できるようにこの関数を再構築するには、かなりの作業が必要になります。
そして、なぜこれが古いマシンで実行され、新しいマシンでは実行されないのかを自問しています。そのため、新しいマシンまたは新しい SQL Server エンジンについて何かをしなければなりません。.NET Framework または SQL Server のコマンドの標準タイムアウトである 30 秒を変更する方法はありますか?
ご提案いただきありがとうございます。
c# - API Calls with long DB query returning Gateway Timeout out despite extending timeouts
I'm using Entity Framework 6 to access a SQL Server in an API application. The API server and DB server are separate. I have a known long query that takes a little more than a minute to run. I have set the CommandTimeout on my EF DbContext using the following code:
Unfortunately, this does not seem to have any affect because the query still times out in less than a minute and the server returns a 504 Gateway Timeout error.
Why does this change not have any affect on the command execution time limit?
Is there something else I should be doing to allow this query to run longer?
Some more details:
I have written a desktop app that makes API calls to an API server which in turn makes queries to the db server. On the desktop application side, I have set the HttpClient property:
On the API server side, I have set the execution timeout:
And on the API server, I've set the SQL command timeout as above.
At some point, the response always ends after a little less than a minute despite the fact that I've set all the timeouts I can think of to 20 minutes. I assumed the 504 was caused by the db timeout, but I suppose it's just as likely that it's between the desktop app and the API server.
Regardless, I'm running out of ideas so anything will help.
c# - C# がストアド プロシージャの呼び出しでタイムアウトした場合、プロシージャは引き続き実行されますか?
一般的なタイプの質問があります。SQL Server ストアド プロシージャを呼び出す C# アプリケーションがあり、C# アプリケーションがタイムアウトした場合、サーバー上のプロシージャ コールは最後まで実行されますか?
asp.net-mvc - EF 6 でコマンド タイムアウトを設定する
クエリ実行のコマンドタイムアウトを設定したいのですが、現在行っていますcontext.Database.CommandTimeout = 90;
が、これが機能していないと感じています。データベースのプロセスログを確認しようとしましたが、時間差が常に90秒未満であることがわかりました。
誰かがEntity Framework 6でデータベースのタイムアウトを設定する方法を教えてもらえますか?
c# - 「タイムアウト」と「テーブル 0 が見つかりません」が表示されるのはなぜですか? また、どのような予防策を講じることができますか?
こちらの以前の質問への回答で、この関連する問題についても質問するようにアドバイスされました。
ときどき、私が持っているレポート生成コードが 2 つの例外をスローします (それらはユーザーに表示されず、すべてが面倒だと思います) が、私はそれらをメールで受け取ります。
1 つ目は、「タイムアウトが発生しました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。」
...そして、その後すぐに続くのは、「テーブル 0 が見つかりません」です。
最初の例外メッセージは、以下のメソッドの try セクションのコードの最後の行 ("new SqlDataAdapter(cmd).Fill(ds);") が例外をスローしていることを示しています。
2 番目の例外メッセージは、上記のメソッドの最後の重要な行 (" return ds.Tables[0]; ") と次の行から発生したことを示しています。
FILL_RATE_BY_DISTRIBUTOR_BY_CUSTOMER_STORED_PROCは、他の場所で、ここでの私の努力と活動の前に使用されるストアド プロシージャであるため、問題を引き起こしているのは SP 自体ではありません。
超好奇心旺盛な人のために、上記のコードからの特注のメソッド呼び出しは次のとおりです。
c# - Dapper.NET 非同期 API を使用するときに CommandTimeout を尊重する方法
Dapper.NET で非同期 API を使用すると、拡張メソッドで渡すコマンド タイムアウト値が考慮されないことに気付きました。次に、SqlCommand.CommandTimeout のMSDN ドキュメントに出くわしましたが、これは「サポート」されていないようです。
CommandTimeout プロパティは、BeginExecuteReader などの非同期メソッド呼び出し中は無視されます。
基本クラスで次のメソッドを使用しています。
30 とします。50CommandTimeoutDefault
秒かかるリクエストでも評価されることがわかります。
非同期 Dapper.NET API を使用して、タイムアウト間隔で接続を切断して破棄する方法はありますか?
c# - DBContext コマンド タイムアウト: IObjectContextAdapter を使用する理由
そのため、このコードを書いて、30 秒でタイムアウトになるストアド プロシージャを実行します (これは、いくつかの検索の後、デフォルト値として理解されました)。CommandTimeout を増やす方法を検索したところ、IObjectContextAdapter インターフェイスを使用してタイムアウトを次のように設定することを推奨する多くの回答が得られました。
コンテキスト オブジェクトを確認したところ、Database オブジェクト内に CommandTimeout プロパティが見つかりました。次のコードを記述したところ、すべて正常に動作し、設定した値までタイムアウトが増加しました。
この方法で CommandTimeout を設定する際に問題があるかどうか、または IObjectContextAdapter メソッドが推奨されるかどうかを知りたいと思いました。
前もって感謝します。