实现容错步骤 (ThresholdBatchStep)

容错通用批处理步骤使用一个输入、一个输出流和一个错误流。在批处理循环的每一次迭代期间,此步骤会从批处理数据流 (BDS) 输入流中读取单个条目并将其传递给 BatchRecordProcessor 属性以进行处理。

开始之前

在容错时,BatchRecordProcessor 属性可能会返回有效的数据对象,也可能会返回空值。如果返回值是空值,那么会将从输入流中读取的记录记录至错误流并对 ThresholdPolicy 接口调用 invalidRecordEncountered 方法。阈值策略确定是否已达到容错阈值。如果这样,那么它会返回 STEP_CONTINUE_FORCE_CHECKPOINT_BEFORE_PROCESSING_CANCEL,这会强制创建检查点并将作业置于可重新启动状态。否则,作业将正常继续进行。如果 BatchRecordProcessor.processRecord 返回的数据有效,那么会将该数据传递至 BDS 输出流。

关于此任务

使用以下属性来实现容错步骤。

表 1. 必需属性. 该表包括属性名称、值和描述。
属性名称 描述
threshold_policy Java 类名称 用于实现 com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy 接口的类
BATCHRECORDPROCESSOR Java 类名称 用于实现 BatchRecordProcessor 接口的类
表 2. 可选属性. 该表包括属性名称、值和描述。
属性 描述
debug true 或 false(缺省值为 false) 在步骤中启用跟踪和调试
EnablePerformanceMeasurement true 或 false(缺省值为 false) 测量步骤中所花费的时间

过程

  1. 实现 com.ibm.websphere.batch.devframework.steps.technologyadapters.BatchRecordProcessor 接口以为步骤提供业务逻辑。

    在步骤的 xJCL 中,声明 BATCHRECORDPROCESSOR 属性并将值设置为该接口的实现。例如:

    ...
    <props>	 
    	<prop name="BATCHRECORDPROCESSOR"
        value="com.ibm.websphere.batch.samples.tests.steps.InfrastructureVerificationTest"/>
    </props>
    ...    
  2. 实现 com.ibm.websphere.batch.devframework.thresholdpolicies.ThresholdPolicy 接口以为步骤提供阈值策略。也可以使用产品实现,例如 com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicycom.ibm.websphere.batch.devframework.thresholdpolicies.RecordBasedThresholdPolicy

    按以下代码片段中所示来声明要在 xJCL 中使用的 ThresholdPolicy:

    ...  
    <props>	 
    	 <prop name="threshold_policy"
        value="com.ibm.websphere.batch.devframework.thresholdpolicies.PercentageBasedThresholdPolicy"/>  
    </props>  
    ...  
  3. 将 BDS 输入流逻辑名设置为 inputStream,将 BDS 输出流逻辑名设置为 outputStream 并将错误的 BDS 输出流设置为 errorStream

    逻辑名是在 xJCL 中进行声明。例如:

    <batch-data-streams>
       <bds>
    	<logical-name>inputStream</logical-name>
    	<props>
            .... 
       </bds>
        <bds>
    	<logical-name>outputStream</logical-name>
    	<props>
    	...
        </bds>
        <bds>
    	<logical-name>errorStream</logical-name>
    	<props>
    	...
         </bds>
    </batch-data-streams>
  4. 使用 BatchPackager 进行包装时,必须将应用程序的作业步骤类 jobstepclass 设置为 com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep。 例如:

    使用 WebSphere Extended Deployment Compute Grid V6.1.1:

    ejbname.1=IVTStep1
    jndiname.1=ejb/MyThresholdBatchStep
    jobstepclass.1=com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep

    使用 WebSphere Extended Deployment Compute Grid V8.0:

    ...
    <job-step name="Step1">
    <classname>com.ibm.websphere.batch.devframework.steps.technologyadapters.ThresholdBatchStep</classname>
    ...

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_cgerrant
文件名:tgrid_cgerrant.html