Service Broker のバックエンド サービスとやり取りする同じアプリの 2 つのインスタンスがあるとします。各インスタンスは、開始した会話のみを処理し、残りを無視することをどのように知ることができますか? 私の記憶が正しければ、すべての RECEIVE によってキューからメッセージが削除されます。
次に例を示します。
-- Assume the SquareService return the square of the number sent to it
-- Instance 1
BEGIN DIALOG @Conversation1
FROM SERVICE InitService
TO SERVICE 'SquareService'
ON CONTRACT (MyContract)
WITH ENCRYPTION = OFF;
SEND ON CONVERSATION @Conversation1 MESSAGE TYPE MyMessageType('1');
-- Instance 2
BEGIN DIALOG @Conversation2
...;
SEND ON CONVERSATION @Conversation2 MESSAGE TYPE MyMessageType('2');
RECEIVE
インスタンス 1 が正しく 1 を取得し、インスタンス 2 が正しく 4 を返すようにするには、誰がステートメントを作成すればよいでしょうか?