6.3. 再接続の設定

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

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

例: 再接続の有効化

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

opts.reconnect(ropts);

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

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

接続試行間の遅延を制御するには、delay オプション、delay_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);