Broker:Conversation イベント クラス

適用対象: SQL ServerAzure SQL Managed Instance

SQL Server では、 Service Broker メッセージ交換の進行状況を報告するために、Broker:Conversation イベントが生成されます。

Broker:Conversation イベント クラスのデータ列

データ列 Type 説明 列番号 フィルターの適用
ApplicationName nvarchar SQL Serverのインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。 10 はい
ClientProcessID int クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターによって割り当てられた ID。 クライアントでクライアント プロセス ID が指定されると、このデータ列が作成されます。 9 はい
DatabaseID int USE database ステートメントで指定されているデータベースの ID。 特定のインスタンスについて USE databaseステートメントが実行されていない場合は既定のデータベースの ID となります。 SQL Server プロファイラー では、 ServerName データ列がトレースにキャプチャされ、そのサーバーが利用可能な場合、データベースの名前が表示されます。 データベースに対応する値は、 DB_ID 関数を使用して特定します。 3 はい
EventClass int キャプチャされたイベント クラスの種類。 Broker:Conversation の場合は、常に 124です。 27 いいえ
EventSequence int このイベントのシーケンス番号。 51 いいえ
EventSubClass nvarchar イベント サブクラスの種類。 各イベント クラスについての詳細情報を提供します。 21 はい
GUID uniqueidentifier ダイアログのメッセージ交換 ID。 この ID はメッセージの一部として転送され、メッセージ交換の両側で共有されます。 54 いいえ
HostName nvarchar クライアントが実行しているコンピューターの名前。 このデータ列には、クライアントがホスト名を指定している場合にデータが格納されます。 ホスト名を指定するには、 HOST_NAME 関数を使用します。 8 はい
IsSystem int イベントがシステム プロセスとユーザー プロセスのどちらで発生したか。

0 = ユーザー

1 = システム
60 いいえ
LoginSid image ログイン ユーザーのセキュリティ ID 番号 (SID)。 各 SID はサーバーのログインごとに一意です。 41 はい
MethodName nvarchar このメッセージ交換が属しているメッセージ交換グループ。 47 いいえ
NTDomainName nvarchar ユーザーが属している Windows ドメイン。 7 はい
NTUserName nvarchar このイベントが生成された接続を所有するユーザーの名前。 6 はい
ObjectName nvarchar ダイアログのメッセージ交換ハンドル。 34 いいえ
優先順位 int メッセージ交換の優先度レベル。 5 はい
RoleName nvarchar メッセージ交換ハンドルのロール。 initiator または targetのいずれかです。 38 いいえ
ServerName nvarchar トレースしている SQL Server インスタンスの名前。 26 いいえ
Severity int (このイベントによってエラーが報告された場合) SQL Server エラーの重大度。 29 いいえ
SPID int クライアントに関連付けられているプロセスに、 SQL Server によって割り当てられているサーバー プロセス ID。 12 はい
StartTime datetime イベントの開始時刻 (取得できた場合)。 14 はい
TextData ntext メッセージ交換の現在の状態。 次のいずれかの値になります。 1 はい
SO。 送信開始状態。 SQL Server でこのメッセージ交換に対して BEGIN CONVERSATION が処理されましたが、メッセージはまだ送信されていません。
SI。 受信開始状態。 データベース エンジン の別のインスタンスで現在のインスタンスとの新しいメッセージ交換が開始されましたが、現在のインスタンスが最初のメッセージの受信を完了していません。 SQL Server では、最初のメッセージが分割されたものであるか、 SQL Server で順序どおりにメッセージが受け取られなかった場合は、この状態のメッセージ交換が作成されます。 ただし、メッセージ交換で受信された最初の転送データに最初のメッセージ全体が含まれている場合は、 SQL Server で CO 状態のメッセージ交換が作成されることがあります。
CO。 メッセージ交換中状態。 メッセージ交換が確立され、メッセージ交換の両側からメッセージを送信できます。 通常のサービスに関する通信の大部分は、メッセージ交換がこの状態のときに行われます。
DI。 受信切断状態。 メッセージ交換のリモート側で END CONVERSATION が発行されました。 メッセージ交換のローカル側で END CONVERSATION が発行されるまで、メッセージ交換はこの状態になります。 アプリケーションは引き続きこのメッセージ交換のメッセージを受信できます。 メッセージ交換のリモート側ではメッセージ交換が終了しているので、このメッセージ交換でアプリケーションからメッセージを送信することはできません。 アプリケーションで END CONVERSATION を発行すると、メッセージ交換は終了 (CD) 状態に移行します。
DO。 送信切断状態。 メッセージ交換のローカル側で END CONVERSATION が発行されました。 メッセージ交換のリモート側で END CONVERSATION が承認されるまで、メッセージ交換はこの状態になります。 アプリケーションはこのメッセージ交換でメッセージを送受信することはできません。 メッセージ交換のリモート側で END CONVERSATION が承認されると、メッセージの交換は終了 (CD) 状態に移行します。
ER。 エラー。 このエンドポイントでエラーが発生しました。 Error、Severity、State の各列に、発生した特定のエラーに関する情報が含まれています。
CD。 終了状態。 メッセージ交換のエンドポイントは解放されました。
Transaction ID bigint トランザクションに対してシステムが割り当てた ID。 4 いいえ

次の表は、このイベント クラスのサブクラス値の一覧です。

id サブクラス 説明
1 SEND Message SQL Server では、 で SEND ステートメントが実行されるときに、 SEND Message データベース エンジン イベントが生成されます。
2 END CONVERSATION SQL Server では、 で WITH ERROR 句を指定しない END CONVERSATION ステートメントが実行されるときに、 END CONVERSATION データベース エンジン イベントが生成されます。
3 END CONVERSATION WITH ERROR SQL Server では、 で WITH ERROR 句を指定した END CONVERSATION ステートメントが実行されるときに、 END CONVERSATION WITH ERROR データベース エンジン イベントが生成されます。
4 Broker Initiated Error SQL Server では、 でエラー メッセージが作成されるたびに Broker Initiated Error Service Broker イベントが生成されます。 たとえば、 Service Broker がダイアログのメッセージをルーティングできないときは、ブローカーがそのダイアログのエラー メッセージを作成し、このイベントを生成します。 SQL Server では、アプリケーション プログラムがエラーでメッセージ交換を終了しても、このイベントが生成されることはありません。
5 Terminate Dialog Service Broker がダイアログを終了しました。 Service Broker はダイアログの続行を妨げる条件に反応してダイアログを終了しますが、この条件はエラーやメッセージ交換の通常の終了ではありません。 たとえば、サービスを削除すると、 Service Broker はそのサービスのダイアログをすべて終了します。
6 Received Sequenced Message SQL Server では、 でメッセージ シーケンス番号を含むメッセージを受信するときに、 Received Sequenced Message SQL Server イベント クラスが生成されます。 ユーザー定義メッセージ型はすべてシーケンス番号付きメッセージです。 Service Broker では、次の 2 つの場合にシーケンス番号のないメッセージが生成されます。

Service Broker が生成するエラー メッセージにはシーケンス番号が付きません。

メッセージの受信確認にはシーケンス番号が付けられない場合があります。 Service Broker では、効率を上げるために、シーケンス番号付きメッセージにすべてのメッセージ受信確認が含められます。 ただし、アプリケーションから一定時間内にシーケンス番号付きメッセージがリモート エンドポイントに送信されなかった場合、 Service Broker はメッセージ受信確認用にシーケンス番号のないメッセージを作成します。
7 Received END CONVERSATION SQL Server では、 SQL Server がメッセージ交換の相手から End Dialog メッセージを受信するときに、Received END CONVERSATION イベントが生成されます。
8 Received END CONVERSATION WITH ERROR SQL Server では、 がメッセージ交換の相手側からユーザー定義エラーを受信すると、 Received END CONVERSATION WITH ERROR SQL Server イベントが生成されます。 SQL Server では、 SQL Server がブローカー定義エラーを受信した場合は、このイベントは生成されません。
9 Received Broker Error Message SQL Server では、 がメッセージ交換の相手側からブローカー定義エラー メッセージを受信すると、 Received Broker Error Message Service Broker イベントが生成されます。 SQL Server では、 Service Broker がアプリケーションで生成されたエラー メッセージを受信した場合は、このイベントは生成されません。

たとえば、現在のデータベースに転送先のデータベースへの既定のルートが含まれている場合、 Service Broker ではサービス名が不明なメッセージをその転送先にルーティングします。 転送先のデータベースがメッセージをルーティングできない場合、そのデータベースのブローカーでエラー メッセージが作成され、現在のデータベースに返されます。 現在のデータベースが転送先のデータベースからブローカーが生成したエラーを受信すると、現在のデータベースで Received Broker Error Message イベントが生成されます。
10 Received END CONVERSATION Ack SQL Server では、メッセージ交換のこちら側から送信された End Dialog メッセージまたは Error メッセージの受信が相手側で確認されるときに、 Received END CONVERSATION Ack イベント クラスが生成されます。
11 BEGIN DIALOG SQL Server では、データベース エンジンで BEGIN DIALOG コマンドが実行されるときに、 BEGIN DIALOG イベントが生成されます。
12 Dialog Created SQL Server では、 がダイアログのエンドポイントを作成すると Dialog Created Service Broker イベントが生成されます。 Service Broker は、現在のデータベースがダイアログの開始側か相手側かにかかわらず、新しいダイアログが確立されるたびにエンドポイントを作成します。
13 END CONVERSATION WITH CLEANUP SQL Server では、 データベース エンジン で WITH CLEANUP 句を指定した END CONVERSATION ステートメントが実行されるときに、END CONVERSATION WITH CLEANUP イベントが生成されます。

関連項目

SQL Server Service Broker (SQL Server Service Broker)