1

Azure でランブックを作成して、スケジュールされた間隔で sproc の実行を自動化しました。sproc の実行中にタイムアウト例外が発生します。

接続文字列の接続タイムアウト値を「0」に変更して無期限にしようとしましたが、同じ問題が再発しています。このストアド プロシージャを実行すると、ほとんど 3 分もかかりませんが、Run-book はタイムアウト例外で失敗します。

Runbook の種類: PowerShell ワークフロー Runbook

ありがとう、マノジ。

4

1 に答える 1

1

接続文字列のタイムアウトを 0 に設定すると、接続のタイムアウトにのみ影響します。つまり、データベースとの接続を確立するためにプロセスに無限の時間を与えます。コードが表示されない場合、問題はコマンドのタイムアウトにあると思われます。ストアド プロシージャが完了するまでにデフォルトの 30 秒よりも時間がかかる可能性があります。ストアド プロシージャを実行する前に、SqlCommand インスタンスに適切なタイムアウトを設定する必要があります。

# Create command with a 10 minute timeout
$DatabaseCommand = New-Object System.Data.SqlClient.SqlCommand
$DatabaseCommand.Connection = $DatabaseConnection
$DatabaseCommand.CommandTimeout = 600
$DatabaseCommand.CommandText = "..."

# Execute non query
$NonQueryResult = $DatabaseCommand.ExecuteNonQuery()
于 2017-10-12T15:59:04.317 に答える