バス宛先の厳密なメッセージの順序付け

どのような状況でもメッセージの順序を維持する必要がある場合、メッセージの順序が通常の宛先の場合よりもかなり厳密に 保持されるように、宛先を構成することができます。

一般に、単一のプロデューサーが単一の宛先に対して作成するメッセージは、 それらが作成されたときと同じ順番でその宛先のコンシューマーに示されます。ただし、 メッセージの順番を変更する可能性のある、特定のトポロジーおよびイベント (システム障害など) があります (詳しくはメッセージの順序付けを参照)。 メッセージの厳密な順序が重要な必要な場合、より厳密にメッセージの順序を保持するように宛先を構成できます。 制限されたトポロジー (このセクション内で後で説明) と一緒にメッセージの厳密な順序付けを使用すると、 どのような状況でもメッセージの順序が維持されます。

自動的に強制される制約事項

厳密に順序付けられた宛先 をシステムに組み込むと、実行時に特定の制約事項が自動的に強制されます。これらの制約事項は、 アプリケーションが、メッセージを厳密な順序にするために宛先と対話する方法に影響を与えます。 完全に順序付けられるように宛先を構成する前に、次の各制約事項を十分に把握してください。
  1. コンシューマーが順序付けられた宛先に同時に接続できないようにする。 ある宛先から複数のコンシューマーがコンシュームするようにすると、メッセージが順不同にコンシューム される場合があります。したがって、順序付けられたキュー宛先、および順序付けられたトピック・スペース上の サブスクリプションの場合、いつでも、最大で 1 つのコンシューマーしか接続できません。このことは、キュー宛先で「排他的受信」を true に設定し、JMS トピック接続ファクトリーで「永続サブスクリプションを共有」を「共有しない」に設定することと同じであり、これらのオプションが オーバーライドされたかどうかを示す警告がシステム・ログに生成されます。接続されるコンシューマーも、 常に単一トランザクションに制限されます (これは、多くのユーザーに影響しないようにするための、 JMS などの多くのメッセージング・インターフェースの通常の振る舞いです)。
  2. 部分的にコンシュームされたメッセージが、以後のメッセージがコンシュームされないようにする。標準の宛先 (つまり、メッセージの厳密な順序付けオプションが使用可能にされていない宛先) の場合、 宛先から部分的にコンシュームされたメッセージ (例えば、まだコミットされていないトランザクション内で 受信された場合など) は、以前にコンシュームされてまだコミットされていないメッセージより先にメッセージの処理が継続できるように、コンシューマーによってスキップオーバーされる場合があります。 これによってメッセージの順序が乱れる場合があります。順序付けられた宛先の場合、 そのようなメッセージはコンシューマーによってスキップされません。その代わりに、 メッセージが完全に除去されるか (例えば、アンコミット・トランザクションがコミットされる)、 あるいは置き換えられる (例えば、アンコミット・トランザクションがロールバックされる) まで、 コンシューマーはブロックされます。この状況が発生するのは、以前に接続したコンシューマーが、 宛先からのメッセージのコンシュームに使用されたトランザクションをコミットできない場合か、 トランザクション・リソースが、トランザクションのコミット中に一時的に使用不可になる場合です。リソースが永続的に使用不可になる場合のこれらのトランザクションの解決については、 未確定トランザクションの解決を参照してください。
  3. 順序付け宛先で、並行メッセージ駆動型 Bean (MDB) が制限される。順序付け宛先にデプロイされた MDB の最大並行エンドポイント数および最大バッチ・サイズ設定が 1 にオーバーライドされます。詳しくは、JMS アクティベーション・スペック [設定]を参照してください。これにより、MDB によるメッセージの処理が順序付けられます。システムが実行時にこのプロパティーを オーバーライドすると、システム・ログに警告が生成されます。
  4. 順序付け宛先で、並行メディエーションが制限される。順序付け宛先のメディエーションの「並行メディエーションを許可」設定が false にオーバーライドされます。詳しくは、並行メディエーションを参照してください。 これにより、メディエーションによるメッセージの処理が順序付けられます。システムが実行時にこのプロパティーを オーバーライドすると、システム・ログに警告が生成されます。
  5. 繰り返されるメッセージの障害時にエンドポイントを自動停止する」が使用可能になっている場合は、「連続障害メッセージのしきい値」が 1 にオーバーライドされます。
  6. 既存のトピック宛先で厳密なメッセージ順序の維持を使用可能にした場合の効果。厳密なメッセージ順序が既存のトピック宛先で使用可能になっている場合、既存の永続サブスクリプションと関連する メッセージが無効になります。厳密なメッセージ順序が使用可能であり、環境が再始動されると、既存の永続サブスクリプションが削除され、再作成されます。永続サブスクリプションに関連付けられているメッセージも削除されます。

メッセージの順序付けに影響する可能性のあるその他の制約事項

宛先でメッセージの厳密な順序を使用可能にしても、次の制約事項は自動的には強制されません。 しかし、これらの制約事項はメッセージの順序付けに影響する場合があるため、理解しておく必要があります。
  • 宛先で例外宛先が構成されている場合、メッセージがその配信失敗数の最大限度に到達するなどのエラー条件の下で、 その宛先に向けられたメッセージが、例外宛先に配信される可能性があります。このメッセージの宛先変更は、メッセージの順序の変更とみなされる場合があります。その場合は、宛先で例外宛先を「なし」に設定する必要があります。 例外宛先を「なし」に設定すると、そうでなければ例外宛先へ移動していたメッセージが、 その宛先にとどまることになることに注意してください。
  • サービス統合バスのトポロジーの変更がメッセージの順序に影響を与える場合があります。 例えば、順序付き宛先を削除し、再作成すると、2 つの別個の宛先ができると考える必要があります。 したがって、両方の宛先間で、順序が保障されない可能性があります。
  • メディエーションの導入または除去がメッセージの順序に影響を与える場合があります。 メッセージが宛先へ流れたり宛先を通過するときに、メディエーションを宛先へ導入したり、 宛先から除去したりすると、メッセージの順序は必ずしも保持されません。
  • メディエーションは、メッセージの順序に意図的に影響を与えるように設定することができるため、 メディエーションの変更が直接、メッセージの順序に影響する場合があります。例えば、 メッセージを再順序付けしたり、メッセージを異なる宛先へ経路指定したりするメディエーション を導入することができます。
  • 別名宛先および外部宛先は、厳密なメッセージ順序を維持するオプションを持ちません。どちらの場合も、 基礎にある宛先のみが順序付けられます。
  • キュー宛先が、複数のメッセージング・エンジンを持つクラスター・バス・メンバーにデプロイされる場合、 つまり、宛先が複数のキュー・ポイントまたはメディエーション・ポイントを持つ場合、メッセージの順序は 宛先間で維持されない場合があります。したがって、そのような宛先で厳密なメッセージ順序を使用可能にしても、 メッセージの順序は保証されません。メッセージのアフィニティーを構成すると、一連のメッセージを同じキュー・ポイントに送信して、単一のコンシューマーで順番に処理することができます。 メッセージのアフィニティーは、メッセージが複数のキュー・ポイントでワークロード・バランシングされなくなるため、パフォーマンスに影響を与えます。
    重要: システムでは区画に分割された宛先の使用は禁止されていません。区画に分割された宛先の使用をシステムで禁止するのは、ユーザーの責任です。
  • 保証パーシスタント以外の信頼性を持つメッセージは、特定の条件で失われたり、複写されたりする場合があります。詳しくは、メッセージの信頼性レベル - JMS デリバリー・モードとサービス統合のサービスの品質を参照してください。 これによって、メッセージの順序が乱れると思われる場合、 厳密に順序付けされた宛先には、保証パーシスタント・メッセージのみを使用する必要があります。
  • メッセージの順序付けはメッセージ優先順位内で保証されます。異なる優先順位のメッセージが 低い優先順位のメッセージを追い越す場合があることを理解しておく必要があります。
  • メッセージの順序付けはメッセージ信頼性内で保証されます。ある信頼性のメッセージが 異なる信頼性のメッセージを追い越す場合があることを理解しておく必要があります。
  • 複数のコンシューマーが順序付け宛先に接続することは許可されませんが、 複数のプロデューサーを使用して、順序付け宛先にメッセージを送信することはできます。メッセージは、送信トランザクションがコミットされる順番で宛先に現れるため、 複数プロデューサー間での順序付けは保証されません。
  • アプリケーション・コードは、メッセージの順序付けを乱すロジックを含む場合があります。

トピックのタイプを示すアイコン 概念トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cjo_message_order_
ファイル名:cjo_message_order_.html