批处理数据流
批处理数据流 (BDS) 为 Java™ 对象,这些对象为批处理步骤处理的数据流提供摘要。批处理步骤可以具有一个或多个与其关联的 BDS 对象。网格端点使与批处理步骤关联的 BDS 在运行时可用。网格端点还通过调用特定于批处理的回调来管理 BDS 的生命周期。
BDS 对象实现 com.ibm.websphere.batch.BatchDataStream 接口。此接口独立于服务器。实现对象可以从任何类型的数据源(例如,文件和数据库)检索数据。BatchDataStream 接口上的回调方法使网格端点可在运行时管理 BDS。BDS 的其中一个关键功能是可以将它在流中的当前位置转换为网格端点,且可以将自己移动到数据流中的给定位置。 此功能使网格端点可记录(在网格端点数据库中)批处理步骤已处理了多少数据。将在每个检查点上记录此信息。因此,如果作业以可恢复方式被取消或失败,那么网格端点可从数据流中的记录的位置重新启动批处理作业。
以下列出 BatchDataStream 接口具有的主要方法。请参阅 BatchDataStream 接口的 API,以获取更多信息。
- void open()
- 由网格端点调用以打开 BDS
- void close()
- 由网格端点调用以关闭 BDS
- void initialize(String ilogicalname, String ijobstepid)
- 由网格端点调用以初始化 BDS,以使其了解其逻辑名称和批处理步骤标识
- String externalizeCheckpointInformation()
- 在检查点之前由网格端点调用以记录 BDS 的当前光标
- void internalizeCheckpointInformation(String chkpointInfo()
- 由网格端点调用以通知 BDS 先前记录的光标 chkpointInfo。通常,在此调用之后调用 positionAtCurrentCheckpoint,以将 BDS 移动到此光标。
- void positionAtCurrentCheckpoint()
- 在调用 internalizeCheckpointInformation 后由网格端点调用,以将 BDS 移动到通过 internalizeCheckpointInformation 调用传入的 chkpointInfo 指示的光标。
BatchDataStream 接口不具有用于检索数据或写入数据的方法。批处理步骤调用以对 BDS 对象进行读取或写入的接口上未定义 getNextRecord 和 putNextRecord 方法。用于在批处理步骤和 BDS 对象之间传递数据的方法是实现 BDS 对象的职责。查看此产品支持的批处理样本,以查看如何实现批处理数据流的示例。
- 事务环境
- 在全局事务中调用 BDS 对象的所有方法。 不保证相同事务中会发生对 BDS 对象的任何连续方法调用,这是因为网格端点拥有此事务,而不是 BDS 对象。