通过FTP / FTPS在主机的可变块文件中写入数据

时间:2017-04-12 13:14:54

标签: ftp mainframe ftps

大型机中可变块文件的前4个字节包含有关记录和块的信息。我能够通过FTP或FTPS从大型机的可变块文件中读取数据。但是,如果我不在每条记录中添加空格,那么在尝试回写数据时,数据会混乱。只有当我在每条记录中追加空格时,我才能获得预期的输出。有什么办法可以在变量块文件的前四个字节中写入记录信息吗?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚你正在做什么并试图完成。我会假设您通过FTP从VB(或可能是VBS)主机数据集中获取了一些数据。然后在非大型机平台上处理它,然后将其FTP回来。

如果您希望能够在平台外成功读取块和记录长度,则需要使用RECFM = U引用FTP作业中的主机数据集。请注意,这需要您从大型机端启动FTP,我不相信您可以执行FTP获取并保留VB(S)文件中的块/记录长度。但是,您可以先将主机上的文件复制到RECFM = U文件,然后将其复制到FTP。同样,需要在主机端采取措施来调整数据供您使用。

当你把它放回去时你可能会遇到类似的问题。坦率地说,我没有尝试过PUTting到RECFM = VB文件来了解默认情况下主机FTP服务器是否会正确地为你做记录/块长度,但听起来似乎没有。因此,如果您必须以编程方式管理非平台代码中的记录/块长度(这可能不像听起来那么简单),然后再将PUT返回到大型机,我的猜测是您将拥有放入已经具有正确RECFM的预分配文件。您可以使用引用站点命令(IIRC)正确分配新数据集,但我还没有尝试过。

简而言之,RECFM = U可以获得块/记录长度,将它们放回原点可能会比较棘手。但我对这个方向不太确定。

根据您正在尝试做的事情,很可能更容易处理大型机上的数据。特别是如果您的代码是Java:IBM使JZOS类可用,这使得在大型机上读取大型机数据集非常容易。

相关问题