SQL Server 2008 Service Broker を使用して、ストアド プロシージャによって動的に作成される長時間 (最大約 30 分) のトランザクションの進行状況をログに記録したいと考えています。私には2つの目標があります:
1) トランザクションを構成する動的に作成されたステートメントのリアルタイム ロギングを取得して、トランザクションの進行状況をリモートで監視できるようにするには、
2) ロールバックを必要とする障害が発生した可能性があるポイントまで、トランザクションを構成するステップを確認できるようにするため。
進行状況メッセージをテーブルに記録したい (ストアド プロシージャがロールバックしてもログを残したい) ため、単純にコンソールに PRINT (または RAISERROR(msg,0,0)) することはできません。
しかし、私の理解では、送信スレッドがコミットされるまで (外部トランザクション) メッセージをキューから受信することはできません。これは本当ですか?もしそうなら、どのようなオプションがありますか?