Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SOS-柏林计划程序无法继续下一个作业_Java_Linux_Javax.script - Fatal编程技术网

Java SOS-柏林计划程序无法继续下一个作业

Java SOS-柏林计划程序无法继续下一个作业,java,linux,javax.script,Java,Linux,Javax.script,我现在正在将SOS调度程序从sun solaris迁移到Oracle linux SOS Berlin scheduler是1.5.3253-Linux X64的最新版本,具有 Java JDK 1.7.0.45-64位 上次使用的是JavaScript,但不能支持64位,所以我改为使用javax.script:JavaScript 很高兴每个作业都可以运行,但现在的问题是,一旦触发第一个作业,该作业就不会继续到下一个作业 以下是我更改的脚本: <?xml version="1.0" en

我现在正在将SOS调度程序从sun solaris迁移到Oracle linux

SOS Berlin scheduler是1.5.3253-Linux X64的最新版本,具有 Java JDK 1.7.0.45-64位

上次使用的是JavaScript,但不能支持64位,所以我改为使用javax.script:JavaScript

很高兴每个作业都可以运行,但现在的问题是,一旦触发第一个作业,该作业就不会继续到下一个作业

以下是我更改的脚本:

<?xml version="1.0" encoding="UTF-8"?>
<job order="yes" title="F0001">
  <params>
    <param name="command" value="'/disk4/job/F0001 > /disk4/job/logs/F0001.log'"/>
    <param name="ignore_error" value="0"/>
    <param name="ignore_signal" value="0"/>
    <param name="ignore_stderr" value="1"/>
    <param name="log_file" value="/disk4/job/logs/F0001.log"/>
    <param name="timeout" value=""/>
    <param name="interpreter" value="/bin/ksh"/>
  </params>
  <script
    java_class="sos.scheduler.managed.JobSchedulerManagedExecutableJob" language="java"/>
  <monitor>
    <script language="javax.script:javascript">
        function spooler_task_after(){
                        var exitCode = spooler_task.exit_code();
                        if(exitCode != 0){
                                spooler_log.info("Program exit with exit code : " + exitCode);
                                return false;
                        }
                        return true;
        }
    </script>
  </monitor>
</job>

函数假脱机程序任务后(){
var exitCode=spooler_task.exit_code();
如果(exitCode!=0){
后台处理程序_log.info(“程序退出,退出代码:“+exitCode”);
返回false;
}
返回true;
}
这是我的工作链:

<?xml version="1.0" encoding="UTF-8"?>
<job_chain title="001_DAILY">
  <job_chain_node error_state="error" job="F0001" next_state="1" state="0"/>
  <job_chain_node error_state="error" job="F0002" next_state="2" state="1"/>
  <job_chain_node error_state="error" job="F0003" next_state="success" state="2"/>
  <job_chain_node job="001_END" state="success"/>
  <job_chain_node.end state="error"/>
</job_chain>

这是我的最终工作:

<?xml version="1.0" encoding="utf-8"?>
<job order="yes" title="001_END">
  <params>
    <param name="command" value="'echo DONE > /disk4/job/logs/001_END.log'"/>
    <param name="ignore_error" value="0" />
    <param name="ignore_signal" value="0" />
    <param name="ignore_stderr" value="1" />
    <param name="interpreter" value="/bin/ksh" />
    <param name="log_file"
    value="/disk4/job/logs/tmp_job_stdout.log" />
    <param name="timeout" value="" />
  </params>
  <script java_class="sos.scheduler.managed.JobSchedulerManagedExecutableJob"
  language="java" />
  <monitor>
    <script language="javax.script:javascript">

        function spooler_task_after(){
            return true;
        }
        </script>
  </monitor>
  <commands on_exit_code="success">
    <add_order id="002_ROUTINE" job_chain="/002_ROUTINE_A" replace="yes"/>
  </commands>
</job>

函数假脱机程序任务后(){
返回true;
}
但在结束作业后,它将能够转到下一个作业链继续,但只能运行第二个作业链的第一个作业

作业链上是否存在配置错误


有什么想法吗?谢谢

问题已确定

错误如下所示:

<param name="ignore_stderr" value="1" />
<param name="scheduler_order_ignore_stderr" value="1"/>

以前我使用的是1.3.x版

现在升级到最新版本,变量名已更改

解决方案如下:

<param name="ignore_stderr" value="1" />
<param name="scheduler_order_ignore_stderr" value="1"/>

然后,工作将继续到下一个正常