1

ファイルを Tandem HP/Non-Stop 環境に FTP 送信しようとしています。レコードは C プロセスを使用してファイルに書き込まれ、別の C プロセスを使用して読み取られます。

ファイル自体には、標準のテキスト エディタを使用して読み取ることができないいくつかのレコードが含まれています。これは、ファイルを正しく転送するには、バイナリモードで転送する必要があることを意味すると考えました。バイナリ モードで転送しようとすると、次のエラーが発生します。

ftp> bin
200 Type set to I.
ftp> put SM11098
200 PORT command successful.
553 Error: Structured file transfer only allowed in Ascii mode,
ftp> ascii
200 Type set to A.
ftp> put SM11098
200 PORT command successful.
150 Opening data connection for SM11098 (10.220.98.237,4078d).
552 SM11098: Relative file record length > Maximum record length
ftp: 1576960 bytes sent in 4.08Seconds 386.70Kbytes/sec.

上記のエラーをグーグルで検索しようとしましたが、何も表示されませんでした。私にとっての構造化ファイルは、構造化レコードを含むバイナリ ファイルのように聞こえます。これはバイナリモードで FTP するべきではありませんか? FTP プログラムが ASCII モードの使用を強制しています。

2 番目のエラーは何ですか? (つまり、「相対ファイル レコード長 > 最大レコード長」)

4

1 に答える 1

0

あなたの投稿は完全には述べていませんが、HP-NonStopからHP-NonStopにFTPで接続していて、ソースファイルが「構造化」されているようです。NonStop環境では、「構造化ファイル」には特定の意味があることに注意する必要があります。このファイルは、* nixまたはMS-DOSシステムで見られる種類のファイル(NonStopでは非構造化ファイルと呼ばれます)とは異なります。構造化ファイルはバイトの配列ではありませんが、レコード境界、および潜在的に他の特性があり、その一部はSQLテーブルの特性に類似しています。

FTPは通常、非構造化ファイルに対して機能しますが、構造化ファイルの場合は、おそらく追加のパラメーターを使用する必要があります。(FTP NonStop拡張機能は、残念ながらNonStopのシステムソフトウェアで見つかった最悪の設計です。)基本的にput、構造化ファイルタイプ(「e」、「」から始めて、コマンドのパラメータの後に属性を使用する必要があります。 k "、または" r ")およびおそらく他の属性。これは、構造化ファイルを転送していることをFTPに通知します。構文を正しく理解するには、おそらくマニュアルを確認する必要があります。バイナリデータがあるにもかかわらず、これには「ASCIIモード」を使用する必要があります。

(「相対ファイルレコード長」エラーは、構造化ファイル転送の失敗が原因である可能性があります。ソースファイルが相対構造化ファイルの場合は、ファイルタイプ「r」(Relativeを表す)を使用するのが適切です。)

ただし、両方のシステムがNonStopの場合、通常は「拡張」ネットワーク(IP経由など)を使用してネットワーク化されるため、FTPを使用するよりもファイルのコピーが簡単です。通常のコマンドインタープリターを使用し、通常のコピーまたは複製コマンドの宛先ファイル名の一部としてシステム名を入力するだけです。

于 2011-06-14T00:13:19.590 に答える