计划中的TWSz Java API重新启动和restartAndCleanUp作业

时间:2018-01-05 10:43:42

标签: java workload-scheduler tivoli-work-scheduler

我正在寻找一个示例,如何使用TWSz Java API重新启动并重新启动并清理Plan中的作业。为了简单重启,我正在改变工作状态

plan.setJobInstanceStatus(jobInPlanList.get(0).getId(), FlowNodeInternalStatusType.FLOW_NODE_ZOSSTATUS_READY, "", null);

我不知道这是正确的方法吗?我无法找到重新启动和清理的方法,我尝试使用组合:

plan.beginJobRestartCleanup
plan.executeJobRestartCleanup
plan.commitJobRestartAndCleanup

但没有什么能正常运作。

1 个答案:

答案 0 :(得分:1)

简单重启就可以将作业状态设置为就绪。 关于重启和清理,您应该使用以下流程: -set需要传递给beginJobRestartCleanup api的RestartCleanupOptions参数 - 如果需要,修改要重新启动的作业 -承诺 -handle可能的异常使用try-catch块和rollbackJobRestartCleanup

以下是一个例子:

    try
    {
        /*
         * start the cleanup session, modify parameters if needed
         */
        RestartCleanupOptions rco = new RestartCleanupOptions();
        rco.setAction(RestartCleanupType.ACTION_JOBRERUN);
        rco.setCleanup(CleanUpOption.MANUAL);
        rco.setUseExpandedJCL(false);
        plan.beginJobRestartCleanup(restartID, rco, null);


        /*
         * Now get datasets lists for the specified restart step
         */
        List datasetList = plan.getJobDataSets(restartID, null);

        /* Here you can modify datasetList if needed*/

        /*
         * Now set the datasets
         */
        plan.setJobDataSets(restartID, datasetList, null);
        /*
         * Now get the JCL
         */
        JobControlLanguage jcl = plan.getJobJCL(restartID, true, null);

        /* Here you can modify jcl if needed*/

        /*
         * Now set the JCL
         */
        plan.setJobJCL(restartID, jcl, true, null);
        /*
         * Execute the step-restart operation
         */
        plan.executeJobRestartCleanup(restartID, "JCL", null, null, null);
        /*
         * commit the step restart phase
         */
        plan.commitJobRestartAndCleanup(JobInPlan.class, restartID, null);

    }
    catch (ConnException e)
    {
        plan.rollbackJobRestartAndCleanup(JobInPlan.class, restartID, null);
    }

我希望这会有所帮助。