ネットワーク復旧後、自動的に再配信したい

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar

はじめに

こんにちは、メディアフォースの佐渡です。

ファイル転送中に、何らかのトラブルにより転送が中断されてしまった…このような経験はありませんか?
中断された場合、手動で再配信することも可能ですが、自動で再配信できると便利ですよね。

HULFTシステムには、「自動再配信」の機能が備わっています。
今回は、この「自動再配信」機能にスポットを当てていきましょう。

事前準備

自動再配信の動作は、下記のような流れになっています。
  1. 配信スレッドの起動
  2. 集信受付スレッドへの接続
    ⇒ソケット接続できない場合は「コネクションリトライ回数」分実行
  3. 転送中に通信異常・集信側フェールオーバー発生
  4. 履歴の出力・配信完了後ジョブの起動
  5. 自動再配信
    「自動再配信リトライ回数」分、下記処理を実行
     ●システム動作環境設定の「コネクションリトライ間隔」で指定された時間待機
     ● 2 ~ 4 を実行
そのため、自動再配信を行う上で、 「自動再配信リトライ回数」「コネクションリトライ回数」「コネクションリトライ間隔」の設定が必要になります。


  • コネクションリトライ回数
    ソケット接続に失敗したとき、再接続を試みる回数を指定します。
    相手ホストへの接続を試みて、TCP/IP からコネクション確立失敗のエラーを受け取った場合にリトライする機能です。
  • コネクションリトライ間隔
    ソケット接続に失敗したとき、再接続を試みるまでの待ち時間を秒単位で指定します。
    相手ホストへの接続を試みて、TCP/IP からコネクション確立失敗のエラーを受け取った場合にコネクションリトライ間隔だけ待つ機能です。
  • 自動再配信リトライ回数
    配信処理中に通信異常が発生した場合に、自動再配信を試みる回数を指定します。
    “0”を設定した場合、自動再配信は行いません。
【備考】
 再配信の機能については、HULFT連載記事の「再配信機能」のページもご参照ください。
 https://hulftorangelab.zendesk.com/hc/ja/articles/207070447

自動再配信の流れ

ファイル転送中のエラーのうち、ネットワークに関するエラー発生時や、フェールオーバー発生による強制終了時は、自動的に再配信を実行させることができます。

それでは、自動再配信の流れを見ていきましょう。



  1. 配信スレッドの起動
    配信受付スレッドは、配信スレッドを起動します。
  2. 集信受付スレッドへの接続
    配信スレッドは集信受付スレッドへ接続し、ファイルを転送します。
    集信受付スレッドに接続できない場合は、システム動作環境設定の「コネクションリトライ回数」で指定された回数だけ接続処理を繰り返します。
  3. 通信異常または集信側フェールオーバー発生
    ファイル転送中に通信回線上で異常が発生した場合や、フェールオーバーによる強制終了が発生した場合は、配信スレッドは異常を検出し、処理を中断します。
  4. 配信履歴ファイルへの書き込みおよび配信完了後のジョブ起動
    配信スレッドは、通信異常の結果を配信履歴ファイルに書き込み、異常時ジョブとして登録されたジョブを起動します。
  5. 自動再配信
    3 で異常が発生した場合、配信スレッドは、システム動作環境設定の「コネクションリトライ間隔」で指定された時間の間、待機します。
    その後、システム動作環境設定の「自動再配信リトライ回数」で指定された回数分だけ、 2 ~ 4 の手順を繰り返します。
  6. 配信結果の通知
    配信スレッドは配信受付スレッドに配信結果を通知します。
  7. 再配信待ちファイルの記録
    配信受付スレッドは、配信スレッドから受け取った配信結果が異常の場合に再配信待ちファイルに書き込みます。

【備考】
  • 再配信待ちファイルに出力された再配信待ちレコードは、「再配信要求コマンド(utlsend -r)」を実行することによって手動で再配信を行うことができます。
  • 3 で通信異常が発生した場合、集信側はプロセスの終了処理を実行して終了します。
    配信側プロセスが自動再配信により再接続すると集信受付スレッドは再生成されます。

実行例

ネットワークエラー(相手先のHULFTの集信プロセスが停止してしまい、ソケットが切断された)によりHULFTの配信が途中で中断した場合、配信スレッドは、システム動作環境設定の「コネクションリトライ間隔」で指定された時間の間、待機します。



配信状況一覧から処理の結果を確認します。
※ コンソールから、再配信が開始~終了したことが確認できます。

■自動再配信に成功した場合

配信処理が正常終了します。

■自動再配信に失敗した場合

配信処理が異常終了し、再配信の情報(再配信待ちファイル)が出力されます。



自動再配信対象エラーコード

自動再配信の対象になるエラーコードは以下のとおりです。
下記以外のエラーについては、自動再配信されません。

通信異常の場合

 配信中に通信異常が発生した場合、配信履歴の完了コードは、以下のシステム関連の完了コードとなります。
  • 731 : 送信処理に失敗しました。
  • 732 : 受信処理に失敗しました。
  • 735 : データの受信処理でタイムアウトが発生しました。

集信側ホストでフェールオーバーが発生して強制終了された場合

 集信側ホストでフェールオーバーが発生した場合、配信履歴のエラーコードは以下のようになります。
  • 450 : 配信プロセスの完了コード(集信側で異常が発生しました)
  • 591 : 強制終了されたことを表す集信側ホストの完了コード
           ※ 詳細は集信側機種の「エラーコード・メッセージ」を参照してください。

【備考】
 集信側ホストでのフェールオーバーによる強制終了は、集信側ホストに以下を導入している場合に検出できます。
  • HULFT for UNIX/Linux
  • HULFT for Windows Ver.7.3.0以降

まとめ

いかがでしたか。
自動再配信機能を用いることで、ファイル転送が中断された場合でも、ネットワーク復旧後に自動でファイルを再配信することができます。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント