【问题标题】:Spring Batch: How to identify job failing at which stepSpring Batch:如何识别作业在哪一步失败
【发布时间】:2017-05-24 06:58:25
【问题描述】:

我是 Spring Batch 的新手。我的工作有时会以不同的方式失败 一步,有时在不同的步骤,当我尝试调试它时 返回完成。 我不知道发生了什么。任何人都可以指导我春季批处理作业的这种奇怪行为。如果有什么办法 找出作业在整体作业中失败的步骤。

我在批处理中使用 SQL Loader。所以有时它会出错 也与 SQLLoader 相关 ERROR 1: SQLLoader-951: Error calling 一次/加载初始化错误 2: SQLLoader-941: Error during 表 ABC_TABLE 的描述

这是我在随机运行 JOb 时遇到的 2 个错误。

有时它没有显示错误,SQLLoader 显示为 INFOCOMPLETED 状态但作业仍然失败。

【问题讨论】:

  • 失败时出现什么错误?
  • @JohnJoe 我已经用你的问题的答案更新了问题。
  • 我们不确定这份工作在做什么?它是从数据库中提取批量数据吗?此外,您粘贴的错误是应用程序中编写的自定义错误。如果您可以添加堆栈跟踪,那将会很有帮助。

标签: java spring spring-batch


【解决方案1】:

我能够解决这个问题。 在我的 JobExceutionListener -> afterJob(JobExecution jobExecution) 方法中 我为

添加了日志
> logger.info("\n\n Job ends........."+"\t jobexcution
> failure--"+jobExecution.getFailureExceptions()+"\n\t
> StepExceutions=="+jobExecution.getStepExecutions());

它向我显示了异常以及给出问题的步骤,然后在调试后我能够得到问题。

【讨论】:

  • 这不是记录异常的正确方法。如果在作业期间抛出异常并且不可跳过,则 Spring Batch 会正确记录它。您发布的有关工作定义的信息太少。什么是 SQLLoader?发布您的日志。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多