当我从 Mainframe Connect 直接发送可变长度文件到 UNIX 盒子时,UNIX 上的文件在 Mainframe 文件的开头有一些额外的字节,我尝试使用不同的 SYSOPTS 选项,但我仍然得到这些初始字节。有什么想法吗?
最佳答案
在进行传输之前,您应该考虑将文件复制到大型机上的固定长度记录 (recfm=FB) 文件中。有许多大型机实用程序可以执行此操作(即排序)。
如果将其作为 VB 文件传输,则还应将其保留为 EBCDIC 文件(BDW/RDW 字段是二进制字段,不应转换为 ASCII)。
<小时/>正如其他人所说,提供该文件的示例会很有用。
<小时/>接着 NealB。主机上的一个vb文件就是这种格式存储的
<BDW><RDW>Record Data 1
<RDW>Record Data 2
....
<RDW>Record Data n-1
<BDW><RDW>Record Data n
<RDW>Record Data n+1
....
<RDW>Record Data o-1
<BDW><RDW>Record Data o
<RDW>Record Data o+1
....
哪里
- BDW: block 描述符字为4个字节;前 2 个字节是 block 长度(大端格式);对于磁盘文件,最后 2 个字节将为十六进制 0(磁带文件可以使用这 2 个字节)。
- RDW:记录描述符字为4个字节;前2个字节是记录长度(大端格式);最后 2 个字节将为十六进制 0。
因此,如果 block 长度为 240(并包含 3 个 80 字节的记录),则文件将为
---BDW--- ---RDW---
00F0 0000 0050 0000 80-bytes of data (record 1)
0050 0000 80-bytes of data (record 2)
0050 0000 80-bytes of data (record 3)
可能有一个用于处理大型机 VB 文件的 unix 实用程序
<小时/>有一些用于 Connect-Direct (NDM) 的 vb 选项(请参阅 http://pic.dhe.ibm.com/infocenter/sb2bi/v5r2/index.jsp?topic=%2Fcom.ibm.help.cd_interop_sysopts.doc%2FCDP_UNIXSysopts.html )。
看文档,不能将vb选项与ascii翻译结合起来;在大型机上将文件转换为固定长度记录 (recfm=FB) 可能很有意义。
<小时/>注意:您可以尝试使用 Record Editor 查看该文件。并使用文件向导(布局名称左侧的按钮)。向导应该发现它是一个 Mainframe-VB 文件。
注意:虽然将文件转换为大型机上的固定长度记录是最佳选择,但 java 项目 JRecord如果需要可以读取大型机 VB 文件
关于java - 直接连接 : File sending from Mainframe to Unix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21977135/