Spring Boot Application使用MySQL + C3p0 DataSource
。
我用来与 JDBC 和 JPA (提供方 Hibernate )一起使用的此数据源。
在每个 JDBC DAO层方法中,我都尝试/捕获了 SQLException 。而此捕获块确实捕获了此 通信异常 ,但是..
但是当我尝试发送请求越来越多时,我开始有了这个堆栈跟踪。
com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
Caused by: java.net.ConnectException: Connection refused: connect
+许多细节..
然后最终 我在 SQLException捕获块中捕获:
java.sql.SQLException: Connections could not be acquired from the underlying database!
此消息之前的应用程序看起来像无法连接并且知道。
它以500个状态代码“非常快速” 给出响应。
此消息后应用程序看起来像它尝试连接并且无法理解它不能。在这种情况下,它会非常缓慢地给出响应。
打开数据库后,应用程序无需重启即可工作。
答案 0 :(得分:1)
大堆栈跟踪可能由运行您的应用程序的Web服务器打印。可能不是来自您的代码。您需要了解有关如何避免这种堆栈跟踪打印的Web服务器。