8.2. 永続サブスクリプションの作成


永続サブスクリプションは、メッセージの受信側を表すリモートサーバーの状態です。通常、クライアントが閉じられると、メッセージ受信側は破棄されます。ただし、永続サブスクリプションは永続的であるため、クライアントはこれらのサブスクリプションの割り当てを解除してから、後で再度アタッチすることができます。デタッチ中に受信したすべてのメッセージは、クライアントの再割り当て時に利用できます。

永続サブスクリプションは、クライアントコンテナー ID とレシーバー名を組み合わせてサブスクリプション ID を形成することで一意に識別されます。サブスクリプションが回復できるようにするには、これらの値に安定した値が必要です。

永続サブスクリプションを作成するには、以下の手順に従います。

  1. 接続コンテナー ID を client-1 などの安定した値に設定します。

    proton::container cont {handler, "client-1"};
  2. sub-1 などの安定した名前で receiver を作成し、durability_mode および expiry_policy オプションを設定して、持続性を確保するためにレシーバーソースを設定します。

    void on_container_start(proton::container& cont) override {
        proton::connection conn = cont.connect("amqp://example.com");
        proton::receiver_options opts {};
        proton::source_options sopts {};
    
        opts.name("sub-1");
        sopts.durability_mode(proton::source::UNSETTLED_STATE);
        sopts.expiry_policy(proton::source::NEVER);
    
        opts.source(sopts);
    
        conn.open_receiver("notifications", opts);
    }

サブスクリプションからデタッチするには、proton::receiver::detach() メソッドを使用します。サブスクリプションを終了するには、proton::receiver::close() メソッドを使用します。

詳細は、durable-subscribe.cpp の例を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.