Broker:Conversation イベント クラス

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

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

データ列

説明

列番号

フィルターの適用

ApplicationName

nvarchar

SQL Server のインスタンスへの接続を作成したクライアント アプリケーションの名前。 この列には、プログラムの表示名ではなく、アプリケーションによって渡された値が格納されます。

10

ClientProcessID

int

クライアント アプリケーションが実行されているプロセスに対し、ホスト コンピューターによって割り当てられた ID。 クライアントでクライアント プロセス ID が指定されると、このデータ列が作成されます。

9

DatabaseID

int

USE database ステートメントで指定されているデータベースの ID。 特定のインスタンスについて USE database ステートメントが実行されていない場合は既定のデータベースの ID となります。 SQL Server Profiler では、Server Name データ列がトレースにキャプチャされ、そのサーバーが利用可能な場合、データベースの名前が表示されます。 データベースに対応する値は、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

不可

Priority

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

メッセージ交換の現在の状態。 次のいずれかです。

  • 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。 終了状態。 メッセージ交換エンドポイントは使用されていません。

1

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 では、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 がメッセージ交換の相手から End Dialog メッセージを受信するときに、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 Error Message イベントが生成されます。 Service Broker がアプリケーションで生成されたエラー メッセージを受信した場合は、SQL Server ではこのイベントは生成されません。

たとえば、現在のデータベースに転送先のデータベースへの既定のルートが含まれている場合、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 では、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