【问题标题】:Spring batch call getNextException() in JdbcBatchItemWriterJdbcBatchItemWriter 中的 Spring 批处理调用 getNextException()
【发布时间】:2015-07-16 13:52:20
【问题描述】:

我们有一个带有 spring boot 和 spring batch 的小批量项目。

我们正在使用JdbcBatchItemWriter 和 db2 数据库。但是,当发生错误时,我们收到以下错误消息:

原因:com.ibm.db2.jcc.am.BatchUpdateException: [jcc][t4][102][10040][3.63.123] 批处理失败。该批次已提交,但该批次的单个成员至少发生了一次异常。 使用 getNextException() 检索特定批处理元素的异常。 ERRORCODE=-4229,SQLSTATE=null

不幸的是,要获得明确的错误消息,我需要 spring 调用 getNextException() 以获取有关精确异常的详细信息。但是,我检查了 SQLErrorCodeSQLExceptionTranslator 类的代码,看起来 Spring 并没有为此提供一些功能。

有没有人在不重写SQLErrorCodeSQLExceptionTranslator类的情况下找到解决这个问题的方法?

【问题讨论】:

    标签: java spring spring-batch


    【解决方案1】:

    这可以通过检查 getAllFailureExceptions()jobLauncher.run() 结束后返回的异常列表来处理。

     List<Throwable> exceptions = execution.getAllFailureExceptions();
                    for (Throwable throwable : exceptions) {
                       //code to handle nested exceptions
                     }
    

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 2015-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 2019-01-30
      相关资源
      最近更新 更多