DisconnectNonTransientException
为什么会出现?它只发生一次,之后无法再现错误。有什么办法可以避免将来发生错误。更重要的是如何解决不再可重现的问题?
编辑:有关此问题的更多更新。
1.使用mybatis,DB2,tomcat。(尝试访问远程数据库)
2.自上次访问tomcat中的应用程序以来,代码在长时间间隔后首次访问数据源时发生此错误。刷新时,错误消失,应用程序按预期工作。
每次访问后都会关闭与数据源的连接
创建的SqlSession未关闭(这是否会导致问题?)
错误说:“数据库管理器无法接受新请求,已终止所有正在进行的请求,或者由于在目标系统上检测到意外错误情况而终止了此特定请求.ERRORCODE = -4499, SQLSTATE = 58009“
mybatis SqlSession是否有默认超时?
答案 0 :(得分:0)
更重要的是如何解决不再可重现的问题?
在堆栈跟踪中,您可以找到抛出异常的位置。然后调试代码,你可以找到它抛出的原因。
由于代码或数据出错,会出现许多异常。你应该找到错误并修复它。如果您无法在代码中修复它,那么您将从代码中捕获异常,然后决定如何处理它。
如果您无法重现异常,那么您可以跟踪可能引发异常的代码。通过更改日志记录模式显示或写入调试代码。
如果你得到了异常堆栈跟踪,那么你应该知道它抛出时代码是什么。
如果您有一些可能会重现异常的测试,那么您可以编写其他代码来拦截异常。您应该编写此类代码,尝试在测试环境中重现异常。然后你应该知道如何处理它。