次の方法で共有


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 です。Server Name データ列がトレースでキャプチャされ、サーバーが使用可能な場合、SQL Server Profiler でデータベースの名前が表示されます。DB_ID 関数を使用して、データベース 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

不可

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 で受信したメッセージの順序が正しくない場合は、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 イベントが生成されます。

参照

その他の技術情報

Service Broker の概要
メッセージ交換のアーキテクチャ

ヘルプおよび情報

SQL Server 2005 の参考資料の入手