8.5.2 タイムアウトの監視
FTPインバウンドアダプタとFTPクライアントとの通信中や,FTP受付への振り分け中に,FTPクライアントやネットワークの異常によって通信処理が無応答になったり,FTP受付以降のファイル操作処理に時間が掛かってしまったりしている場合に,FTPインバウンドアダプタでタイムアウトを検知します。
タイムアウトが検知された場合,メッセージが出力されたりコネクションが切断されたりして,システムの処理能力の低下を防止します。
FTPインバウンドアダプタでタイムアウトを監視するポイントを,ActiveモードおよびSTORによるファイル転送の場合を例に,次の図に示します。
- 〈この項の構成〉
(1) タイムアウトしたときの動作
それぞれのポイントでの,タイムアウトしたときの動作,および注意事項について説明します。
(a) アイドルタイムアウト
制御コネクションに対して,FTPインバウンドアダプタから応答を返してから,FTPクライアントから次のFTPコマンドが送信されてくるまでの時間を監視します。
アイドルタイムアウトの監視の流れを次の図に示します。
次に,タイムアウトしたときの動作および注意事項を示します。
- タイムアウトしたときの動作
-
-
メッセージを出力します。
-
タイムアウトが発生した制御コネクションを切断します。
-
- 注意事項
-
データ送受信中のアイドルタイムアウトの監視範囲は次のとおりです。
-
FTPクライアントから転送要求を受信してから,FTP受付に制御が移り,FTPインバウンドアダプタがコネクション接続要求を完了するまでの間
-
FTPクライアントとのファイルデータ(またはリストデータ)の送受信が完了してから,FTP受付に制御が移り,FTPインバウンドアダプタが転送完了応答を返すまでの間
上記1.および2.の合計時間がアイドルタイムアウトの監視時間を超えると,アイドルタイムアウトが発生します。ただし,アイドルタイムアウトの発生は,データ送受信が終了したあと(転送完了応答を送信したあと)に発生します。
なお,コネクション接続要求が完了してから,ファイルデータ(またはリストデータ)の送受信が完了するまでの間は,アイドルタイムアウトの監視をしません。
データ送信中のアイドルタイムアウト,およびデータ受信中のアイドルタイムアウトについて,次の図に示します。
図8‒19 データ送信中のアイドルタイムアウト 図8‒20 データ受信中のアイドルタイムアウト -
(b) データコネクション接続のタイムアウト
データコネクションの接続方式がアクティブモードの場合,FTPクライアントへのデータコネクションの接続を開始してから完了するまでの時間を監視します。時間の監視は,コネクション接続の監視時間,およびリトライ回数で指定します。データコネクション接続のタイムアウトの監視の流れを次の図に示します。
次に,タイムアウトまたはデータコネクション接続でエラーが発生したときの動作および注意事項を示します。
- タイムアウトしたとき,またはデータコネクション接続でエラーが発生したときの動作
-
-
メッセージを出力します。
-
指定したリトライ回数に達していない場合,データコネクション接続をリトライします。
-
指定したリトライ回数に達した場合,制御コネクションでレスポンスコード「425 Can't open data connection.」を返します。
-
- 注意事項
-
指定した監視時間より,TCP/IPで設定されたコネクション接続の監視時間が短い場合は,TCP/IPで設定された監視時間でタイムアウトが発生します。また,データコネクションの接続でエラーが発生した場合は,監視時間を待たないで,すぐにエラーとなります。
TCP/IPで設定された監視時間でタイムアウトが発生した場合,およびデータコネクションの接続でエラーが発生した場合は,指定したリトライ回数だけリトライします。リトライ回数を超えたときは,データコネクションの接続処理を終了します。
(c) データ受信のタイムアウト
FTPクライアントからTCP/IPパケットに分割したファイルデータが受信できる状態となってから,TCP/IPパケットに分割したファイルデータが送信されてくるまでの時間を監視します。
データ受信のタイムアウトの監視の流れを次の図に示します。
次に,タイムアウトしたときの動作を示します。
- タイムアウトしたときの動作
-
-
メッセージを出力します。
-
タイムアウトが発生したデータコネクションを切断します。
-
制御コネクションでレスポンスコード「551 <ファイルパス>: Error on output file.」を返します。
-
FTP受付に例外「FileTransferFailedException」を通知します。
-
(d) データ送信のタイムアウト
FTPクライアントへTCP/IPパケットに分割したファイルデータまたはリストデータの送信を開始してから,TCP/IPパケットに分割したファイルデータまたはリストデータの送信完了の確認応答までの時間を監視します。
データ送信のタイムアウトの監視の流れを次の図に示します。
次に,タイムアウトしたときの動作を示します。
- タイムアウトしたときの動作
-
-
メッセージを出力します。
-
タイムアウトが発生したデータコネクションを切断します。
-
制御コネクションで次のレスポンスコードを返します。
・ファイルデータ転送の場合
「551 <ファイルパス>: Error on input file.」を返します。
・リストデータ転送の場合
「551 Requested action aborted.」を返します。
-
FTP受付に例外「FileTransferFailedException」を通知します。
-
(2) 設定方法
cjgetrarpropコマンドで取得したconnector属性ファイルの次の項目を設定してください。
-
nioListener_idleTimeout(アイドルタイムアウト)
-
nioListener_dataConnection_active_connectRetryCount(データコネクション接続のリトライ回数)
-
nioListener_dataConnection_active_connectRetryInterval(データコネクション接続の監視時間)
-
nioListener_dataConnection_idleTimeout(データ送信およびデータ受信のタイムアウト)
設定方法の詳細は,マニュアル「サービスプラットフォーム システム構築・運用ガイド」の「3.2.3 FTPインバウンドアダプタをセットアップする」を参照してください。