【问题标题】:How to Read/write zOS(Mainframe) flat file using spring batch如何使用 Spring Batch 读取/写入 zOS(大型机)平面文件
【发布时间】:2018-01-11 00:19:48
【问题描述】:

我正在开发应该在 zOS(大型机)上执行/触发的 spring 批处理应用程序。我必须在 zos 中读取/写入平面文件作为 Spring Batch 中的输入文件并进行一些处理。我们有一些工作示例吗? spring batch 有直接读取大型机平面文件的能力吗?如果是这样,你能给我一些工作的例子。提前致谢

【问题讨论】:

  • “大型机平面文件”是一个加载语句。我确实有一些代码可以演示如何阅读通过 COBOL 抄写本定义的文件。你可以在这里找到:github.com/mminella/COBOL-SpringXD-Source。但是,如果您可以就您要阅读的具体内容提供更多见解,我可以提供更清晰的指导。
  • 嗨迈克尔,我想阅读一个简单的逗号分隔值文件。但我必须使用弹簧批处理,因为它有一个叫做 ItemReader 接口的东西。它有多种实现,如 FlatFileReader 等。我想知道我是否可以使用 spring batch 提供的这个阅读器来读取 Mainframe 文件。如果是的话,一些参考/示例代码。
  • 如果是 ASCII 文件,您应该可以使用现有工具读取它。如果是 EBCDIC,则需要使用自己的 ItemReader 实现。
  • 是的,它是 ASCII 文件。我在 github 上看到了你的演示。如果我使用预定义的 FlatFileItemReader 并假设我的平面文件是 SB950.BLPRIC.BL376T2.D1511700 (same as yours) 。下面的代码会起作用吗? FlatFileItemReader 阅读器 = new FlatFileItemReader(); reader.setResource(new ClassPathResource("SB950.BLPRIC.BL376T2.D1511700"));你的例子中“/data”的意义是什么?
  • @Swaroop你有Cobol Copybook吗???,既然是ascii文件,你应该可以把它当作标准的定宽文件来处理。

标签: java spring-boot io spring-batch zos


【解决方案1】:

使用 z/OS SDK 中的 ZFile 类来读取平面文件(数据集)。有一些有用的示例可以帮助您入门 https://github.com/zsystems/java-samples。它基本上是 C/C++ stdio fopen() 和朋友运行时库函数的 JNI 包装器。

【讨论】:

    【解决方案2】:

    终于可以用这个信息解决问题了。 https://jira.spring.io/browse/BATCH-497 正如大卫所说,我们必须从 IBM 提供的 jzos 中获取 ZFile 和其他类。我可以使用 Spring Batch 从 zos 读取平面文件。

    【讨论】:

      【解决方案3】:

      您可以在读取输入流时使用 charset cp1047。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-06
        • 1970-01-01
        • 2023-03-14
        相关资源
        最近更新 更多