8.6.5 タイマ管理
FTPアダプタのタイマ管理の機能,およびタイムアウト値の設定方法について説明します。
FTPアダプタでタイムアウトを監視するポイントを,PassiveモードおよびSTORによるファイル転送の場合を例に,次の図に示します。
FTPアダプタでタイムアウトを監視するポイントを,ActiveモードおよびSTORによるファイル転送の場合を例に,次の図に示します。
FTPアダプタでは,次のタイムアウトを設定できます。
-
制御コネクション接続タイムアウト
-
FTPコマンドリプライタイムアウト
-
排他取得タイムアウト
-
データコネクション接続タイムアウト
-
データ転送・取得タイムアウト
-
Listenタイムアウト
-
データ読み込みタイムアウト
各タイムアウト値は,FTPアダプタ実行環境プロパティファイルで設定できます。
FTPアダプタ実行環境プロパティファイルの詳細は,マニュアル「サービスプラットフォーム リファレンス」の「6.8.3 FTPアダプタ実行環境プロパティファイル」を参照してください。
- 〈この項の構成〉
(1) 制御コネクション接続タイムアウト
FTPアダプタとFTPサーバの間のコマンド実行やその応答などは,制御コネクション接続によって通信されます。
FTPアダプタからの制御コネクションの接続要求時に相手先ビジーなどでコネクションを確立できなかった場合,指定間隔おきに指定回数まで接続処理をリトライします。接続処理をリトライした場合,リトライの状況を保守用ログに出力します。
設定するパラメタを次の表に示します。
値 |
キー名称 |
デフォルト値 |
---|---|---|
制御コネクション接続リトライ回数(回) |
ftpadp.control-con.retry.count |
5 |
制御コネクション接続リトライ間隔(秒) |
ftpadp.control-con.retry.interval |
2 |
1回の制御コネクション接続タイムアウト時間(秒) |
ftpadp.control-con.connect.timeout |
10 |
タイムアウト時間は,これらのパラメタに指定した値を使った次の計算式で求められます。
(1回の制御コネクション接続タイムアウト時間+制御コネクション接続リトライ間隔)×制御コネクション接続リトライ回数
(2) FTPコマンドリプライタイムアウト
FTPアダプタからFTPコマンドを発行したあと,指定した時間を経過しても応答がない場合,例外が発生します。FTPコマンドリプライタイムアウトを設定することで,例外が発生するまでの時間を設定できます。
設定するパラメタを次の表に示します。
値 |
キー名称 |
デフォルト値(秒) |
---|---|---|
FTPコマンドリプライタイムアウト値 |
ftpadp.ftp-command-reply.timeout |
60 |
(3) 排他取得タイムアウト
共通フォルダ内のファイルをPUTオペレーションでFTPサーバに転送する場合,共通フォルダ内のファイルに対して共有ロックが設定されます。
また,GETオペレーションで共通フォルダのファイルを取得する場合,共通フォルダのファイルに占有ロックが設定されます。
共有ロックまたは占有ロックの設定時に他プロセスとの競合によって設定が失敗したとき,指定間隔おきに指定回数まで排他取得処理をリトライします。リトライ間隔とリトライ回数の積に,各排他取得時のファイルアクセス時間を加えた時間がタイムアウト時間となります。
設定するパラメタを次の表に示します。
値 |
キー名称 |
デフォルト値 |
---|---|---|
共有ロックリトライ回数(回) |
ftpadp.read-lock.retry.count |
0 |
共有ロックリトライ間隔(秒) |
ftpadp.read-lock.retry.interval |
1 |
占有ロックリトライ回数(回) |
ftpadp.write-lock.retry.count |
0 |
占有ロックリトライ間隔(秒) |
ftpadp.write-lock.retry.interval |
1 |
GETINFOオペレーションで共通フォルダにファイルを出力する場合,すでに同名のファイルが存在するときは,ファイルが上書きされます。同名のファイルがほかのプロセスで使用されているときは,占有ロックリトライ回数および占有ロックリトライ間隔で指定したタイムアウト時間で処理がリトライされます。
(4) データコネクション接続タイムアウト
FTPアダプタ,FTPサーバ間でのデータ転送は,データコネクション接続によって通信されます。
接続モードがPASVモードの場合,データコネクション接続要求時に相手先ビジーなどによってコネクションを確立できなかったときは,指定間隔おきに指定回数まで接続処理をリトライします。接続処理をリトライした場合,リトライの状況を保守用ログに出力します。
接続モードがPORTモードの場合,データコネクション接続タイムアウトはFTPサーバの仕様に依存するため,FTPアダプタでは設定できません。
設定するパラメタを次の表に示します。
値 |
キー名称 |
デフォルト値 |
---|---|---|
PASVモードのデータコネクション接続リトライ回数(回) |
ftpadp.data-con.retry.count |
5 |
PASVモードのデータコネクション接続リトライ間隔(秒) |
ftpadp.data-con.retry. interval |
2 |
1回のデータコネクション接続タイムアウト時間(秒) |
ftpadp.data-con.connect.timeout |
10 |
タイムアウト時間は,これらのパラメタに指定した値を使った次の計算式で求められます。
(1回のデータコネクション接続タイムアウト時間+PASVモードのデータコネクション接続リトライ間隔)×PASVモードのデータコネクション接続リトライ回数
(5) データ転送・取得タイムアウト
FTPアダプタからデータ転送コマンドまたはリストコマンドを実行したあと,指定した時間を経過してもデータ転送またはリストデータの取得が完了しない場合は例外が発生します。データ転送タイムアウトおよびデータ取得タイムアウトを設定することで,例外が発生するまでの時間を指定できます。
この例外が発生した場合のローカルファイルおよびリモートファイルの扱いを次に示します。
-
RETRコマンド,LISTコマンド,またはNLSTコマンド実行中のローカルファイル
FTPアダプタが削除します。
-
STORコマンドまたはAPPEコマンド実行中のリモートファイル
FTPサーバの仕様に依存します。
設定するパラメタを次の表に示します。
値 |
キー名称 |
デフォルト値(秒) |
---|---|---|
データ転送タイムアウト値 |
ftpadp.data-con-put.timeout |
60 |
データ取得タイムアウト値 |
ftpadp.data-con-get.timeout |
60 |
ファイル送信は複数回実行されます。
ローカルファイルの読み込みが終わったあとで,時間をチェックして時間が経過していた場合に,タイムアウトが発生します。
ファイル受信は複数回実行されます。
ファイル受信が終わったあとで,時間をチェックして時間が経過していた場合に,タイムアウトが発生します。
(6) Listenタイムアウト
接続モードがPORTモードで,次のどちらかの場合,例外が発生します。
-
FTPアダプタがPORTコマンドの応答を受けたあと,Listen状態で一定時間FTPサーバからデータコネクションの接続要求がなかった場合
-
データコネクションの接続完了後,FTPサーバからFTPアダプタにファイルが送信されてこない場合
Listenタイムアウトを設定することで,例外が発生するまでの時間を指定できます。
設定するパラメタを次の表に示します。
値 |
キー名称 |
デフォルト値(秒) |
---|---|---|
Listenタイムアウト値 |
ftpadp.listen.timeout |
60 |