Service Broker コントラクトの作成
"コントラクト" では、特定のビジネス タスクの名前を定義し、そのタスク内で使用されるメッセージ型を一覧します。Service Broker のコントラクトでは、2 つの異なるサービスの役割として、発信側および発信先を定義します。メッセージ交換の発信側は、発信先にメッセージを送信することによってメッセージ交換を開始します。メッセージ交換で使用するコントラクトは、どちらのサービスの役割が特定のメッセージ型のメッセージを送信できるかを定義します。
サービスで実行されるタスクごとに、メッセージ型が含まれるコントラクトをタスク内の各手順に作成します。各メッセージ型には、メッセージ型が発信側から発信先に送信されるのか、発信先から発信側に送信されるのか、または両方向に送信されるのかを指定します。
コントラクトでは、メッセージの順序や送信できる特定の型のメッセージ数は指定しません。Service Broker では、ダイアログのメッセージ交換で発信側が最初のメッセージを送信する必要があります。最初のメッセージの後は、順序に関する要件はありません。
複数のコントラクトで同じメッセージ型を使用できます。たとえば、部品番号や数量が含まれる XML ドキュメントで構成されるメッセージは、顧客からの注文を受け取るタスク、在庫を管理するタスク、出荷を要求するタスクなどで使用できます。各タスクは個別のコントラクトに対応しますが、3 つのすべてのコントラクトで同じメッセージ型を使用できます。
メッセージのネットワーク形式には、コントラクトの名前が含まれます。そのため、多くの場合、照合順序の問題や名前の競合を回避するために、コントラクト名が選択されます。名前付けの詳細については、「Service Broker オブジェクトの名前付け」を参照してください。