18.2.4 タイマ管理

FTPアダプタのタイマ管理の機能,およびタイムアウト値の設定方法について説明します。

FTPアダプタでは,次のタイムアウトを設定できます。

  1. 制御コネクション接続タイムアウト
  2. FTPコマンドリプライタイムアウト
  3. 排他取得タイムアウト
  4. データコネクション接続タイムアウト
  5. データ転送・取得タイムアウト
  6. Listenタイムアウト

各タイムアウト値は,FTPアダプタ実行環境プロパティファイルで設定できます。

FTPアダプタ実行環境プロパティファイルの詳細は,マニュアル「Cosminexus サービスプラットフォーム リファレンス」の「FTPアダプタ実行環境プロパティファイル」を参照してください。

<この項の構成>
(1) 制御コネクション接続タイムアウト
(2) FTPコマンドリプライタイムアウト
(3) 排他取得タイムアウト
(4) データコネクション接続タイムアウト
(5) データ転送・取得タイムアウト
(6) Listenタイムアウト

(1) 制御コネクション接続タイムアウト

FTPアダプタとFTPサーバの間のコマンド実行やその応答などは,制御コネクション接続によって通信されます。

FTPアダプタからの制御コネクションの接続要求時に相手先ビジーなどでコネクションを確立できなかった場合,指定間隔おきに指定回数まで接続処理をリトライします。接続処理をリトライした場合,リトライの状況を保守ログに出力します。

設定するパラメタを次の表に示します。

表18-2 制御コネクション接続タイムアウトの設定

キー名称デフォルト値
制御コネクション接続リトライ回数(回)ftpadp.control-con.retry.count5
制御コネクション接続リトライ間隔(秒)ftpadp.control-con.retry.interval2
1回の制御コネクション接続タイムアウト時間(秒)ftpadp.control-con.connect.timeout10

タイムアウト時間は,これらのパラメタに指定した値を使った次の計算式で求められます。

(1回の制御コネクション接続タイムアウト時間+制御コネクション接続リトライ間隔)×制御コネクション接続リトライ回数

(2) FTPコマンドリプライタイムアウト

FTPアダプタからFTPコマンドを発行したあと,指定した時間を経過しても応答がない場合,例外が発生します。FTPコマンドリプライタイムアウトを設定することで,例外が発生するまでの時間を設定できます。

設定するパラメタを次の表に示します。

表18-3 FTPコマンドリプライタイムアウトの設定

キー名称デフォルト値(秒)
FTPコマンドリプライタイムアウト値ftpadp.ftp-command-reply.timeout60

(3) 排他取得タイムアウト

共通フォルダ内のファイルをPUTオペレーションでFTPサーバに転送する場合,共通フォルダ内のファイルに対して共有ロックが設定されます。

また,GETオペレーションで共通フォルダのファイルを取得する場合,共通フォルダのファイルに占有ロックが設定されます。

共有ロックまたは占有ロックの設定時に他プロセスとの競合によって設定が失敗したとき,指定間隔おきに指定回数まで排他取得処理をリトライします。排他取得処理をリトライした場合,リトライの状況を保守ログに出力します。リトライ間隔とリトライ回数の積がタイムアウト時間となります。

設定するパラメタを次の表に示します。

表18-4 排他取得タイムアウトの設定

キー名称デフォルト値
共有ロックリトライ回数(回)ftpadp.read-lock.retry.count0
共有ロックリトライ間隔(秒)ftpadp.read-lock.retry.interval1
占有ロックリトライ回数(回)ftpadp.write-lock.retry.count0
占有ロックリトライ間隔(秒)ftpadp.write-lock.retry.interval1

(4) データコネクション接続タイムアウト

FTPアダプタ,FTPサーバ間でのデータ転送は,データコネクション接続によって通信されます。

接続モードがPASVモードの場合,データコネクション接続要求時に相手先ビジーなどによってコネクションを確立できなかったときは,指定間隔おきに指定回数まで接続処理をリトライします。接続処理をリトライした場合,リトライの状況を保守ログに出力します。

接続モードがPORTモードの場合,データコネクション接続タイムアウトはFTPサーバの仕様に依存するため,FTPアダプタでは設定できません。

設定するパラメタを次の表に示します。

表18-5 データコネクション接続タイムアウトの設定

キー名称デフォルト値
PASVモードのデータコネクション接続リトライ回数(回)ftpadp.data-con.retry.count5
PASVモードのデータコネクション接続リトライ間隔(秒)ftpadp.data-con.retry. interval2
1回のデータコネクション接続タイムアウト時間(秒)ftpadp.data-con.connect.timeout10

タイムアウト時間は,これらのパラメタに指定した値を使った次の計算式で求められます。

(1回のデータコネクション接続タイムアウト時間+PASVモードのデータコネクション接続リトライ間隔)×PASVモードのデータコネクション接続リトライ回数

(5) データ転送・取得タイムアウト

FTPアダプタからデータ転送コマンドまたはリストコマンドを実行したあと,指定した時間を経過してもデータ転送またはリストデータの取得が完了しない場合は例外が発生します。データ転送タイムアウトおよびデータ取得タイムアウトを設定することで,例外が発生するまでの時間を指定できます。

この例外が発生した場合のローカルファイルおよびリモートファイルの扱いを次に示します。

設定するパラメタを次の表に示します。

表18-6 データ転送・取得タイムアウトの設定

キー名称デフォルト値(秒)
データ転送タイムアウト値ftpadp.data-con-put.timeout60
データ取得タイムアウト値ftpadp.data-con-get.timeout60

(6) Listenタイムアウト

接続モードがPORTモードの場合,FTPアダプタがPORTコマンドの応答を受けたあと,Listen状態で一定時間サーバからデータコネクションの接続要求がなかった場合,例外が発生します。Listenタイムアウトを設定することで,例外が発生するまでの時間を指定できます。

設定するパラメタを次の表に示します。

表18-7 Listenタイムアウトの設定

キー名称デフォルト値(秒)
Listenタイムアウト値ftpadp.listen.timeout60