1

SQL Server 2008 Service Broker を使用して、ストアド プロシージャによって動的に作成される長時間 (最大約 30 分) のトランザクションの進行状況をログに記録したいと考えています。私には2つの目標があります:

1) トランザクションを構成する動的に作成されたステートメントのリアルタイム ロギングを取得して、トランザクションの進行状況をリモートで監視できるようにするには、

2) ロールバックを必要とする障害が発生した可能性があるポイントまで、トランザクションを構成するステップを確認できるようにするため。

進行状況メッセージをテーブルに記録したい (ストアド プロシージャがロールバックしてもログを残したい) ため、単純にコンソールに PRINT (または RAISERROR(msg,0,0)) することはできません。

しかし、私の理解では、送信スレッドがコミットされるまで (外部トランザクション) メッセージをキューから受信することはできません。これは本当ですか?もしそうなら、どのようなオプションがありますか?

4

1 に答える 1

0

トランザクションがコミットされるまで、サービス キューからメッセージを読み取ることができないのは事実です。

他の方法を試すことができます:

  1. sql clr プロシージャを使用して、.net リモート処理メッセージを .net アプリに送信し、メッセージを受信して​​ログに記録します。

  2. sql clr プロシージャを使用して、テキストまたはその他のログ ファイルをディスクに書き込みます。

  3. 何か他の方法...

よろしく

AJ

于 2011-03-31T09:48:46.623 に答える