再接続設定

すべてのコネクターでは、切断時に再接続を設定できます。接続設定ウィンドウ のグラフィック要素では、次のように表示されます。

API GUI ReconnectionSettings

再接続プロパティ

  • Interval - 接続試行が行われる間隔。
  • Initially - 初回接続が確立されなかった場合(タイムアウト、ネットワーク障害など)に、初回接続を確立する試行回数。
  • Reconnection - 動作中に接続が切断された場合に、再接続を試行する回数。
  • Timeout - 接続/切断が成功するまでのタイムアウト。
  • Operating mode - 接続試行を行うべき動作モード。

コードでの再接続設定

再接続機構は ReConnectionSettings プロパティを通じて設定され、次のエラーシナリオを監視できます。

  • 接続を確立できない(通信不可、ユーザー名/パスワードの誤りなど)。ReConnectionSettings.AttemptCount プロパティは、接続を確立する試行回数を設定します。既定値は 0 で、これはモードが無効であることを意味します。-1 は無限回の試行を意味します。
  • 動作中に接続が切断された。ReConnectionSettings.ReAttemptCount プロパティは、接続を再接続する試行回数を設定します。既定値は 100 です。-1 は無限回の試行を意味します。0 はモードが無効であることを意味します。
  • 接続または切断を行う際、対応する IConnector.Connected または IConnector.Disconnected イベントが長時間受信されない場合があります。このような状況では、ReConnectionSettings.TimeOutInterval プロパティを使用して、成功イベントに対する最大許容タイムアウトを設定できます。この時間が経過しても目的のイベントが発生しない場合、IConnector.ConnectionError イベントがタイムアウトエラー付きで発生します。
  1. ゲートウェイを作成する際は、ReConnectionSettings プロパティを通じて再接続機構の設定を初期化する必要があります。

    // 再接続機構を初期化する (ゲートウェイがサーバーとの接続を失った場合、
    // 10 秒ごとに自動的に接続する)
    Connector.Adapter.ReConnectionSettings.Interval = TimeSpan.FromSeconds(10);
    // 再接続は、選択したボードの取引時間中にのみ動作する
    // (通常取引がない時間帯、たとえば夜間に再接続を無効にするため)
    Connector.Adapter.ReConnectionSettings.WorkingTime = ExchangeBoard.Nasdaq.WorkingTime;
    
  2. 接続制御機構の動作を確認するには、インターネット接続をオフにできます。

    transactions

  3. 下記はプログラムログです。アプリケーションが最初は接続済み状態であり、インターネット接続をオフにした後、アプリケーションが再接続を試行していることを示しています。インターネット接続を復元すると、アプリケーションの接続も復元されます。

    API ReconnectionLog

  4. Connector では複数の接続を使用できるため、既定では ConnectionRestored などの再接続に関連するイベントはトリガーされず、接続アダプターが自分自身で再接続を試行します。このイベントを発生させるには、アダプターの BasketMessageAdapter.SuppressReconnectingErrors プロパティの値を false に設定する必要があります。

    Connector.Adapter.SuppressReconnectingErrors = false;
    Connector.ConnectionError += error => this.Sync(() => MessageBox.Show(this, "接続が失われました"));
    Connector.ConnectionRestored += adapter => this.Sync(() => MessageBox.Show(this, "接続が復元されました"));
    

    sampleconnectionerrorsampleconnectionrestore