我正在尝试将文件FTP到Tandem HP / Non-Stop环境中。使用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模式。
第二个错误是什么? (即“相对文件记录长度>最大记录长度”)
答案 0 :(得分:0)
您的帖子并不常说,但听起来您正在将从 HP-NonStop FTP到HP-NonStop,并且您的源文件是“结构化”的。您需要注意,在NonStop环境中,“结构化文件”具有特定含义:该文件不同于* nix或MS-DOS系统上的一种文件(称为非结构化 NonStop上的文件)。结构化文件不是字节数组,但具有记录边界,可能还有其他特征,其中一些特性与SQL表的特征类似。
FTP通常用于非结构化文件,但对于结构化文件,您可能需要使用额外的参数。 (FTP NonStop扩展是关于NonStop系统软件中最糟糕的设计,遗憾的是你。)基本上你需要在put
命令的参数和参数之后使用属性,从结构化文件类型开始(这是“e”,“k”或“r”)以及其他属性。这告诉FTP您正在传输结构化文件。您可能需要查看手册以获得正确的语法。尽管有二进制数据,您仍需要使用“ASCII模式”。
(“相对文件记录长度”错误可能是由于未能进行结构化文件传输。如果源文件是相对结构化文件,则使用文件类型“r”(代表“相对”)将是合适的。 )
但是,如果两个系统都是NonStop,它们通常会使用“Expand”网络(例如通过IP)联网,然后复制文件比使用FTP更容易。您可以使用普通的命令解释器,只需将系统名称作为普通副本或重复命令的目标文件名的一部分。