メニューボタン
サポートチーム便り2023.06.14

IBM i (AS/400)のFTPでNAMEFMT 0 が有効にならない?

Question

コマンドプロンプトを利用し、PCからIBM i (AS/400)へのFTPでSAVFを送ろうとしたのですが、

UNABLE TO OPEN OR CREATE FILE /qgpl TO RECEIVE DATA.
と出てしまい、うまくいきません。

スクリーンショット
CD QGPL

と実行しても

550-SPECIFIED DIRECTORY DOES NOT EXIST OR CANNOT BE ACCESSED.
550 WORKING DIRECTORY NOT CHANGED.
と出て失敗してしまいます。

スクリーンショット

lsを実行してみたところ、IFSが表示されたので、どうやらDB2ではなくIFSのファイル名のルールでFTPが動いているようです。

QUOTE SITE NAMEFMT 0

も実行してみたのですが、

550 CURRENT DIRECTORY REQUIRES NAME FORMAT 1.
と出てしまい、ライブラリが読めるモードに切り替えることができませんでした。

スクリーンショット

普段の運用にFTPが含まれていないため前任者から引き継ぎしておらず、どのように対応すればよいでしょうか?

Answer

IBM i (AS/400)のFTPサーバの設定が、デフォルト値から変更されていると考えられます。

5250端末からIBM i (AS/400)に接続し、CHGFTPAとコマンド入力後F4でプロンプトをご確認ください。

「初期名の形式(NAMEFMT)」が「*PATH」、「初期ディレクトリー(CURDIR)」が「*HOMEDIR」になってはいませんでしょうか。

スクリーンショット

上記の設定ですと、FTPサーバ接続時のカレントディレクトリがホームディレクトリになります。

QUOTE SITE NAMEFMT 0が失敗するのは、デフォルトで表示されているディレクトリーがDB2上にあるオブジェクトではないので、DB2のファイル命名形式(NAMEFMT 0)で解釈できないためです。

このFTPサーバ設定のまま問題を解消するには、まず

CD /QSYS.LIB/QGPL.LIB
など、IFS上にある/QSYS.LIBの中の任意のライブラリを選択し指定し移動します。

/QSYS.LIB/QGPL.LIBは、ライブラリQGPLを表しているので、もう一度QUOTE SITE NAMEFMT 0を実行すると

スクリーンショット
ファイル命名形式の変更が成功し、QGPLがカレントライブラリになります。

この後は一般的なIBM i (AS/400)で行うFTPと同じ指定方法でSAVFをライブラリに転送できます。

あるいは、上記のようなファイル命名形式の変更は実施せず、IFS領域名前ルールで

PUT SAVF /QSYS.LIB/QGPL.LIB/TEST.FILE
というように指定してもファイルを転送することが可能です。

スクリーンショット

上手く行かない時は、ちょっと焦りますね。。。。。。

by けやきのじぃじ(A)

あわせて読みたい記事

PAGE TOP