如何在块处理中实现文件更新逻辑(Java Batch - JSR352)

时间:2017-08-24 13:14:41

标签: java batch-file websphere-liberty jsr352 java-batch

我正在尝试使用IBM的JSR352 Implementation开发Java批处理程序。由于批处理作业涉及迭代处理大量记录,因此我选择将其实现为块处理作业。

这项工作涉及3个步骤,对文件1中的每个记录不断重复

  1. 读者类:从文件1中读取内容以形成关键文本
  2. 处理器类:查找文件2中的密钥文本
  3. Writer类:使用自定义文本
  4. 更新文件2中找到关键文本的文本
      

    从处理器到编写器,我可以返回所有行号   发现了关键文本匹配。但是,没有RandomAccess文件,如何   我可以从我的Writer更新文件2中的那些特定行号吗?

    因为我只能使用these Input/Outputstreams  文件处理我无法拆分Lookup&之间更新逻辑  处理器和作家班。我怎样才能做到这一点?

    这是因为代码将在Windows机器中开发,但最终在大型机(z / os)服务器中执行。

2 个答案:

答案 0 :(得分:1)

处理器在技术上是可选的,因此您可以仅在writer类中合并查找/更新逻辑。这可能有所帮助。

在z / OS上,使用VSAM数据集(也可通过JZOS ZFile API访问)更容易。但是在Windows上开发/测试很难。我想你可以将ZFile调用保持独立,并且在Windows上用一些可以很好地用于测试目的的操纵模拟替换它们。

答案 1 :(得分:0)

我最终不得不放弃基于JZOS FileFactory的方法,并使用JZOS ZFile的locate API来查找特定的行(使用键)并从编写器中更新它。