いくつかの SSRS サブスクリプションを次々とプログラムで実行しようとしています。レポートはすべて長時間実行され、同時にトリガーされると一貫して失敗します。現時点では、競合しないように、1 日を通して約 4 つの異なるサブスクリプションを提供しています。残念ながら、これはかなりの時間を無駄にする可能性があります。
これに対する私が持っている解決策は、問題のすべてのレポートで実行するようにスケジュールされていないサブスクリプションを作成し、1 つのジョブを取得して、各サブスクリプションの実行が終了したら、各サブスクリプションを次々とトリガーすることです。
- 1 つのジョブが最初のサブスクリプションをトリガーします
- WAITFOR コマンドを使用すると、サブスクリプションが実行されるまで数秒かかります。
- WAITFOR コマンドを使用して、サブスクリプションが実行中であることを定期的に確認します (「保留中」)。
- WAITFOR チェックでレポートが送信されたことがわかると、ジョブは次のサブスクリプションをトリガーします。
サブスクリプションをトリガーするコードを知っています:
exec [ReportServerWSS].dbo.AddEvent @EventType='SharedSchedule', @EventData='011e83ff-344a-416a-83cb-1a9281e4205b'
チェック中に WAITFOR を使用して、チェックの結果に応答する方法を知る必要があるだけです。