6.3. 再接続の設定

再接続すると、クライアントが失われた接続から回復できます。これは、一時的なネットワークまたはコンポーネントの障害後に、分散システムのコンポーネントが再確立された状態にするために使用されます。

AMQ C++ はデフォルトで再接続を無効にします。これを有効にするには、reconnect 接続オプションを reconnect_options クラスのインスタンスに設定します。

例: 再接続の有効化

proton::connection_options opts {};
proton::reconnect_options ropts {};

opts.reconnect(ropts);

container.connect("amqp://example.com", opts);

reconnect を有効にすると、接続が失われたり、接続試行に失敗した場合に、クライアントは簡単な遅延後に再度試行します。遅延は新規試行ごとに指数関数的に増加します。

接続試行間の遅延を制御するには、delaydelay_multiplier、および max_delay オプションを設定します。すべての期間はミリ秒単位で指定されます。

再接続試行回数を制限するには、max_attempts オプションを設定します。これを 0 に設定すると制限が削除されます。

例: 再接続の設定

proton::connection_options opts {};
proton::reconnect_options ropts {};

ropts.delay(proton::duration(10));
ropts.delay_multiplier(2.0);
ropts.max_delay(proton::duration::FOREVER);
ropts.max_attempts(0);

opts.reconnect(ropts);

container.connect("amqp://example.com", opts);