Camel -捕获SQL异常并尝试3次

cidc1ykv  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(160)

当Camel route toF(“sql:insert into ...”)由于数据库连接问题而失败时,会抛出哪个异常?
我已经尝试捕获像onException(CannotCreateTransactionException.class, ConnectionException.class),但它没有捕获。如果我可以捕获它,我想做最多3个重新交付,并调用其他进程如下所示

.maximumRedeliveries(3)
.redeliveryDelay(10000)
.process("ConnectionExceptionProcess")
.end()

谢谢你,

piok6c0g

piok6c0g1#

sql组件可能引发多种错误类型。DataAccessException、IllegalArgumentException、SQLException等。您可以通过在将要创建的路由上仅执行sql操作来解决此问题。您可以从其他路由调用此位置

public class SqlOperationRoute extends RouteBuilder {

@Override
public void configure() {

    onException()
            .maximumRedeliveries(3)
            .process("myProcessor")
            .end();

    from("direct:insert")
            .to("sql:insert into table x .....");

    from("direct:get")
            .to("sql: select  from ....");
}

}

相关问题