我的流水线需要每30分钟执行一次,但是我不能保证每次都能够在30分钟内完成(有时候数据比较少,几分钟就完成了;但是有时候数据多,可能会需要60分钟)。
我试验了一下,如果计划时间到了,而上一次运行还没有结束,TDI会再起动一个流水线。
我的脚本配置是:
function ontimer()
{
timer.setParam ("schedule", "* * * 6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 0,30");
main.startAL("db2ldap")
}
我想达到的效果是:如果某一次运行超过了30分钟,那么即使是下一次的计划时间到来,流水线也不会再启动一个。而是等这一次运行完成了,然后等待下一个计划时间再次运行。
多谢高人指导!
------解决方案--------------------
ibmdisrv 中的参数-w
-w
如果指定了 -r(或 -t),则此标志会使 IBM Tivoli Directory Integrator 等待每个组装流水线的事件处理程序完成后再启动下一个。如果未指定此标志,则 IBM Tivoli Directory Integrator 会并行地启动所有由 -r 参数指定的组装流水线。当最后一个组装流水线和显式启动的事件处理程序完成时,服务器停止。