Broker:Conversation イベント クラス

適用対象: SQL Server Azure SQL Managed Instance

SQL Server では、Service Broker の会話の進行状況を報告する Broker:Conversation イベントが生成されます。

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

データ列 説明 Column number フィルター可能
ApplicationName nvarchar SQL Serverのインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。 10 はい
ClientProcessID int クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターによって割り当てられた ID。 クライアントでクライアント プロセス ID が指定されると、このデータ列が作成されます。 9 はい
DatabaseID int USE database ステートメントで指定されているデータベースの ID。 特定のインスタンスについて USE databaseステートメントが実行されていない場合は既定のデータベースの ID となります。 SQL Server Profiler では、 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 いいえ
重大度 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。 終了状態。 メッセージ交換のエンドポイントは解放されました。
トランザクション ID bigint トランザクションに対してシステムが割り当てた ID。 4 いいえ

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

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

Service Broker によって生成されたエラー メッセージは、キューに格納されません。

メッセージの受信確認にはシーケンス番号が付けられない場合があります。 効率を高める目的で、Service Broker には、シーケンスされたメッセージの一部として、使用可能なすべての受信確認メッセージが含まれます。 ただし、アプリケーションが一定期間内にシーケンスメッセージをリモート エンドポイントに送信しない場合、Service Broker はメッセージ受信確認用にシーケンスされていないメッセージを作成します。
7 Received END CONVERSATION SQL Server は、SQL Server が会話の反対側から終了ダイアログ メッセージを受信すると、Received END CONVERSATION イベントを生成します。
8 Received END CONVERSATION WITH ERROR SQL Server は、SQL Server が会話の反対側からユーザー定義エラーを受信すると、 Received END CONVERSATION WITH ERROR イベントを生成します。 SQL Server は、SQL Server がブローカー定義エラーを受け取ったときに、このイベントを生成しません。
9 Received Broker Error Message SQL Server は、Service Broker が会話の反対側からブローカー定義のエラー メッセージを受信すると、 Received Broker エラー メッセージ イベントを生成します。 アプリケーションによって生成されたエラー メッセージを Service Broker が受信した場合、SQL Server はこのイベントを生成しません。

たとえば、現在のデータベースに転送データベースへの既定のルートが含まれている場合、Service Broker は不明なサービス名を持つメッセージを転送データベースにルーティングします。 転送先のデータベースがメッセージをルーティングできない場合、そのデータベースのブローカーでエラー メッセージが作成され、現在のデータベースに返されます。 現在のデータベースが転送先のデータベースからブローカーが生成したエラーを受信すると、現在のデータベースで Received Broker Error Message イベントが生成されます。
10 Received END CONVERSATION Ack SQL Server は、会話の反対側が会話のこの側から送信された終了ダイアログまたはエラー メッセージを確認すると、 Received END CONVERSATION Ack イベント クラスを生成します。
11 BEGIN DIALOG データベース エンジンが BEGIN DIALOG コマンドを実行すると、SQL Server によって BEGIN DIALOG イベントが生成されます。
12 Dialog Created Sql Server は、Service Broker がダイアログのエンドポイントを作成するときに、 Dialog Created イベントを生成します。 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)