繁体   English   中英

在Spring Boot中捕获JDBCConnectionExceptions

[英]Catching JDBCConnectionExceptions in Spring boot

在使用hikari处理数据库连接的春季启动中,我想捕获JDBCConnectionException异常或任何其他休眠级别的异常,以便在发生这种情况时可以生成通知。 我配置了一个@ControllerAdvice但似乎还没有达到这个水平,但更早了。

@Order(Ordered.HIGHEST_PRECEDENCE)
@ControllerAdvice
public class ExceptionTranslator {

    @ExceptionHandler(JDBCConnectionException.class)
    public void handleJdbcConnectionException(JDBCConnectionException ex, HttpServletResponse response) throws IOException {
        response.sendError(HttpStatus.INTERNAL_SERVER_ERROR.value(), ex.getMessage());
    }

我正在使用spring数据存储库访问db。

WARN |PoolBase                      |2d33dd4e-46d6-11e9-9d35-2f44d962868c|conf-hikari-pool - Failed to validate connection ConnectionID:1 ClientConnectionId: 1f1135cd-94bf-4543-bfe8-687e10a40797 (The connection is closed.). Possibly consider using a shorter maxLifetime value.
WARN |PoolBase                      |2d33dd4e-46d6-11e9-9d35-2f44d962868c|conf-hikari-pool - Failed to validate connection ConnectionID:2 ClientConnectionId: 28890cd1-16ad-43f9-b240-a9ae3aa2d45f (The connection is closed.). Possibly consider using a shorter maxLifetime value.
WARN |SqlExceptionHelper            |2d33dd4e-46d6-11e9-9d35-2f44d962868c|SQL Error: 0, SQLState: null
ERROR|SqlExceptionHelper            |2d33dd4e-46d6-11e9-9d35-2f44d962868c|conf-hikari-pool - Connection is not available, request timed out after 6010ms.
ERROR|SqlExceptionHelper            |2d33dd4e-46d6-11e9-9d35-2f44d962868c|The connection is closed.

您提供的代码示例将仅捕获REST调用流程中引发的异常。 在数据库提交期间REST调用返回后,将引发许多spring-data异常。 以这种方式抛出这些异常是不可能的。 处理这些错误的最佳方法是查看日志,将其推送到Splunk之类的文件并在其中生成警报。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM