第8章 メッセージ配信


8.1. 承認されていない配信の処理

メッセージングシステムは、メッセージ確認を使用して、メッセージの送信ゴールが頻繁に行われるかどうかを追跡します。

メッセージが送信されると、メッセージが送信されてから、確認応答するまでの期間が発生します (メッセージは「in flight (進行中)」です)。その間ネットワーク接続が失われた場合、メッセージ配信のステータスは不明となり、配信が完了するまで、アプリケーションコードで特別な処理が必要になる場合があります。

以下のセクションでは、接続に失敗した場合にメッセージ配信の条件を示します。

未承認の配信とトランザクション以外のプロデューサー

メッセージが進行中の場合、送信タイムアウトが設定されておらず、経過していないとすると、再接続後に再度送信されます。

ユーザーのアクションは不要です。

トランザクションがコミットされていないトランザクションとのトランザクションプロデューサー

メッセージが進行中の場合は、再接続後に再度送信されます。新しいトランザクションで送信が最初に送信された場合は、再接続後に通常通りに送信が続行されます。トランザクションに 1 つ前の送信がある場合は、トランザクションが失敗したと見なされ、後続のコミット操作によって TransactionRolledBackException がスローされます。

配信を図るには、失敗したトランザクションに属するメッセージを再送信する必要があります。

保留中のコミットとトランザクションプロデューサー

コミットが フライト である場合、トランザクションは失敗とみなされ、後続のコミット操作によって TransactionRolledBackException がスローされます。

配信を図るには、失敗したトランザクションに属するメッセージを再送信する必要があります。

未承認配信のあるトランザクションでないコンシューマー

メッセージが受信してもまだ確認されていないと、メッセージを承認すると、エラーは生成されませんが、クライアントによるアクションはありません。

受信したメッセージが確認されていないため、プロデューサーは再送することがあります。重複を回避するために、ユーザーはメッセージ ID で重複メッセージをフィルタリングする必要があります。

コミットされていないトランザクションを使用したトランザクションコンシューマー

アクティブなトランザクションがまだコミットされていない場合は、失敗とみなされ、保留中の承認はドロップされます。後続のコミット操作によって TransactionRolledBackException がスローされます。

プロデューサーは、トランザクションに属するメッセージを再送信する可能性があります。重複を回避するために、ユーザーはメッセージ ID で重複メッセージをフィルタリングする必要があります。

保留中のコミットのあるトランザクションコンシューマー

コミットがフライトの場合、トランザクションは失敗とみなされます。後続のコミット操作によって TransactionRolledBackException がスローされます。

プロデューサーは、トランザクションに属するメッセージを再送信する可能性があります。重複を回避するために、ユーザーはメッセージ ID で重複メッセージをフィルタリングする必要があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.