您可以将事务批处理应用程序构建为作业,然后将该作业划分为下级作业,以便下级作业可以独立和并行运行。 您使用并行作业管理器来提交和管理事务批处理作业。
准备工作
对于转换用户: 为先前版本的 WebSphere 批处理构建的并行作业管理应用程序可以按 WebSphere® Application Server 版本 8.5上的方式运行。 但是,请遵循为两个 SPI 实现配置两个 xJCl 文件、一个 xd.spi.properties 文件和一个共享库相同的过程。 按原样使用该应用程序时,请勿执行以下过程中的步骤。
对于转换用户: 您可以将并行作业管理应用程序迁移到 WebSphere Application Server 版本 8.5。 将 API 实现类添加到应用程序 EAR。 如以下过程中所述,重新编写 xJCL。
有关此任务
您可以为作业开发下级作业,以便下级作业可以独立和并行运行。 首先开发将作业细分为下级作业的标准。 然后,构建简单的批处理应用程序,并使应用程序的各个部分并行化。 最终,为下级作业创建 xJCl 以便在另一过程中,您可以遵循另一过程来部署应用程序。
过程
- 开发将作业细分为下级作业的标准。
例如,将作业划分为基于银行分行的下级作业,而每个分行的下级作业基于分行的位置。 对于给定的银行分行,让下级作业根据每个帐户的每日交易计算每个帐户在当天结束时的余额。
- 构建简单的批处理应用程序将信息作为作业来处理。
- 使应用程序的各个部分并行化。
实现 Parameterizer API 以将批处理应用程序的作业划分为多个下级作业。
- 可选: 收集有关正在运行的下级作业的信息。
使用 SubJobCollector API 来收集信息。
- 可选: 分析收集的有关下级作业的信息。
使用 SubJobAnalyzer API 来分析信息。
- 创建 xJCL。
从来自您为简单批处理应用程序创建的作业的 xJCL 开始。
- 将运行元素指定为作业元素的子代。
- 将运行元素上的实例属性设置为多个。
- 将 run 元素上的 Java™ 虚拟机 (JVM) 属性设置为 single 或 multiple。
使用单个属性在同一 JVM 中运行所有下级作业。 使用多个属性在任何有效 JVM 上运行下级作业。
<run instances="multiple" jvm="multiple">
您可以将运行元素指定为步骤子代。 在此情况下,此步骤作为并行作业运行。 步骤 xJCL 的内容用于生成一步下级作业 xJCL。
- 将一个 prop 元素指定为每个 PJM API 的运行元素的子代。
- 在名称属性上指定 PJM API。
对于 PJM,以下 API 有效:
- com.ibm.websphere.batch.parallel.parameterizer
- com.ibm.websphere.batch.parallel.synchronization
- com.ibm.websphere.batch.parallel.subjobanalyzer
- com.ibm.websphere.batch.parallel.subjobcollector
- 将值属性设置为 API 的名称。
- 包括 prop 元素以指定下级作业名。
- 将名称属性设置为 com.ibm.wsspi.batch.parallel.subjob.name。
- 将值属性设置为作业名称。
- 可选: 包含 prop 元素以指示作业计数。
- 将名称属性设置为 parallel.jobcount。
- 将值属性设置为作业计数的值。
- 指定其他任何作业级别属性。
<run instances="multiple" jvm="multiple">
<props>
<prop name="com.ibm.websphere.batch.parallel.parameterizer"
value="com.ibm.websphere.samples.spi.MailerParameterizer"/>
<prop name="com.ibm.websphere.batch.parallel.synchronization"
value="com.ibm.websphere.samples.spi.MailerTXSynchronization"/>
<prop name="com.ibm.websphere.batch.parallel.subjobanalyzer"
value="com.ibm.websphere.samples.spi.MailerSubJobAnalyzer"/>
<prop name="com.ibm.websphere.batch.parallel.subjobcollector"
value="com.ibm.websphere.samples.spi.MailerSubJobCollector"/>
<prop name="com.ibm.wsspi.batch.parallel.subjob.name"
value="MailerSampleSubJob" />
<!-- The count of parallel sub jobs to be submitted -->
<prop name="parallel.jobcount" value="3" />
</props>
</run>
- 将相同的三个步骤级别属性包含在 xJCL 中的每个步骤中。
<prop name="com.ibm.wsspi.batch.parallel.jobname" value="${parallel.jobname}" />
<prop name="com.ibm.wsspi.batch.parallel.logicalTXID" value="${logicalTXID}" />
<prop name="com.ibm.wsspi.batch.parallel.jobmanager" value="${parallel.jobmanager}" />
结果
您已创建具有可以独立和并行运行的下级作业的一个作业。
下一步做什么?
与您部署其他批处理应用程序一样,部署该应用程序。