リモート・メッセージ・ポイントを使用したメッセージの作成および消費
アプリケーションの接続先のメッセージング・エンジンとは異なるメッセージング・エンジンとの間でメッセージの作成または消費をアプリケーションが行う場合、 メッセージング・エンジンとの間のメッセージ・フローの管理にはリモート・メッセージ・ポイントが使用されます。
メッセージの作成
アプリケーションによるメッセージ作成先のキュー・タイプの宛先が、キュー・ポイントを所有するメッセージング・エンジンから見てリモートのメッセージング・エンジンにある場合、キュー・ポイントへのメッセージの配信を管理するためのリモート・キュー・ポイントが必要になります。アプリケーションが作成するメッセージがパブリッシュ/サブスクライブ・タイプの宛先である場合は、 作成側のアプリケーションのメッセージング・エンジンがローカルの公開ポイントを所有します。同じ宛先に対してサブスクライブするアプリケーションがバス内の異なるメッセージング・エンジンに接続されている場合、これらのリモート・メッセージング・エンジンへのメッセージの配信を管理するため、リモート公開ポイントが必要になります。
宛先が仲介される場合は、メッセージを最初にメディエーション・ポイントで処理する必要があります。メディエーション・ポイントがアプリケーションと異なるメッセージング・エンジンにある場合、メディエーション・ポイントへのメッセージの配信を管理するため、リモート・メディエーション・ポイントが必要です。
これらのアウトバウンド・メッセージは、メッセージの信頼性に応じて信頼性の持てる方法でメッセージ・ポイントに配信される必要があります。このような信頼性のレベルを確保するため、「ベスト・エフォート、非パーシスタント」よりも高い信頼性を持つ メッセージはすべて、プロデューサーのメッセージング・エンジンのリモート・メディエーション・ポイントで 一時的にキューに入れられます。メッセージは、メッセージ・ポイントを所有するメッセージング・エンジンで、 メッセージが正常に着信したことを確認するまでキューに入れられ、その後で、 作成側のメッセージング・エンジンでリモート・メッセージ・ポイントからメッセージのコピーが削除されます。 これにより、障害が発生した場合にメッセージが失われたり順番が変わることのないようにしています。
通常の条件では、メッセージがリモート・メッセージ・ポイントでキューに入れられるのはごく一時的ですが、 障害の発生時やシステムが過負荷になると、メッセージがリモート・メッセージ・ポイントにとどまる時間は長くなります。 リモート・メッセージ・ポイントにおけるアウトバウンド・メッセージをモニターすることで、システムの正常性を評価できます。
メッセージの消費
コンシューム側のアプリケーションは、 アプリケーションがコンシュームする元のメッセージ・ストアを所有しないメッセージング・エンジンに 接続することができます。 アプリケーションがキュー・タイプの宛先から消費する場合、 アプリケーションをキュー・ポイントからリモートとすることができます。 アプリケーションがパブリッシュ/サブスクライブ・タイプの宛先から消費する場合、 アプリケーションをサブスクリプションからリモートとすることができます。これらのどちらかに該当する場合、 アプリケーションからのメッセージ要求を管理するため、 リモート・メッセージ・ポイントが必要です。
アプリケーションがリモートのメッセージ・ストアからメッセージを要求するごとに、 アプリケーションのメッセージング・エンジンから、メッセージを所有するメッセージング・エンジンに対してメッセージが要求されます。 これらのメッセージ要求は、(メッセージにより、または要求側アプリケーションが要求を終了して) 要求が満たされるまでリモート・メッセージ・ポイントにより管理されます。