java - 直接连接 : File sending from Mainframe to Unix

标签 java unix mainframe

当我从 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/

相关文章:

Java共享属性文件: Windows + Unix (generic)

python - 在python中获取正在运行的显示服务器的名称

c - C语言__asm__使用WTO写多行报文

java - logback:两个appender,多个logger,不同级别

java - 给java对象赋值

c - 如何用 C 语言编写我自己的 mv(重命名/移动)unix 命令版本?

java - 将文本文件从大型机发送到 IBM MQ

java - C/C++/Java/C# 中的大量递归解决方案

java - 将频率应用于数组中的元素

sas - 将 COBOL PIC 格式转换为 SAS 非 native 机器