0

私はMSMQ4.0を初めて使用します。私は以下のシナリオで立ち往生しました。サービスAはユーザーの詳細を取得し、ユーザーIDを返します。次に、サービスBはユーザーIDを使用して請求詳細を取得します。次に、これらのステップをキューに入れる必要があります。トランザクションキューを使用する予定です。1)最初のメッセージからIDを取得し、それを2番目のメッセージに含めてください。2)少なくとも1つのステップが失敗した場合は、ロールバックする必要があります(トランザクションキューが自動的に実行します)。それでも失敗する場合は、管理者による検証のためにVerifyAdminQueueに移動します。DeadLetterキューなどを使用するのは好きではありません。

前もって感謝します。

4

1 に答える 1

1

MSMQキューで構築されたサービスは、真に一方向です。これは、応答の概念が組み込まれていないことを意味します。MSMQを使用して要求/応答通信パターンを実装する方法はたくさんありますが、それらすべてを使用して、応答を作成し、呼び出し元に自分で返送する必要があります。

一方向のアクションでは、ロールバックは非常に簡単であり、実際、MSMQはメッセージの送信で失敗したステップをロールバックします。ただし、要求/応答などのより複雑な操作にはMSMQでのトランザクションの概念がないため、複数のメッセージ送信ステップにまたがるロールバックでは、代償コードを記述する必要があります。

于 2012-05-21T17:53:08.180 に答える