0

当 Camel route toF("sql:insert into ...") 由于数据库连接问题而失败时,会引发哪个异常?

我试图捕捉,onException(CannotCreateTransactionException.class, ConnectionException.class) 但它没有捕捉到。如果我能捕捉到它,我想做最多 3 次重新交付并调用其他过程,如下所示

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

谢谢,

4

1 回答 1

0

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 ....");
}

}

于 2021-09-19T10:29:16.267 回答