2010.10.20
 

物理ファイルにFTPを使用する

Question

最近、ネイティブ FTP PUT コマンドを使用して物理ファイルを IBM i に送信していたのですが、そのときに問題が発生しました。このプロセスを複数回実行すると、ファイル・サイズが大きくなることがわかりました。そのファイルを削除しようとして、このプロセスを 3 回実行したら、ファイルのサイズが通常の 3 倍になってしまいました。FTP プロセスを見ると、転送処理がファイルの最後に追加されているようでした。これは、ファイルを開いて複数レコードを見つけて確認しました。

現在は、こうした動作はもう見られません。実際は、ファイルを置き換えているのです。そのファイルは同じ物理ファイルです。誰かが設定ファイルを変更したのかと思っていました。そこで、FTP の動作を変更するために何か FTP 設定またはオプションを変更することができますか。

Answer

リモート・ファイルが FTP で送信中のファイルの名前と一致する場合、FTP スイッチの SUnique がオンでない限り、ファイルの内容は置き換えられます。SUnique については、FTP は 0 と 1 の 2 つの値を持ちます。値 0 を指定するとファイルは上書きされます。これはデフォルト設定です。SUnique 値 1 を指定すると、FTP は一意名のファイルを新しく作成します。既存のファイルは上書きされません。新しいファイルがリモート・システムに作成され、リモート FTP サーバーの FTP サーバーにより作成されたファイルの名前が FTP クライアントへ返信されます。

SUnique の一般的な説明はこのような感じですが、FTP セッションで SUNIQUE 0 または SUNIQUE 1 を単に実行するだけで設定されます。しかし IBM i FTP では新たな工夫が加えられています。物理ファイルに FTP している場合、IBM i のネイティブ・ファイルにはファイルおよびメンバーの両方が入っていることを覚えておいてください。例えば、MYFILE という名前のファイルを PUT すると、FTP は実際は同じ名前でMYFILE.MYFILE でメンバー・ファイルを作成します。何らかの理由で SUnique が設定されると、FTP は以降の PUT で番号を 1 つメンバー名に追加し、追加メンバーを MYFILE.MYFILE1、MYFILE.MYFILE2 といったように PF に追加します。PF の合計サイズを見てみると、ファイル・サイズが大きくなっているように見えますが、実際は新しいファイル・メンバーが追加されたことで、エンクロージング PF のサイズが大きくなっているだけです。

ページトップ

ボタン