When I connect to a database using a connection pool I get this exception.

So then I tried connecting to the database using the basic Class.forName(); and DriverManager method I was able to do so.. why is this happening ?

解决方案

This problem may arise wherever a connection pool is involved. The reason for this is as follows.

The Reason:

Say in your application you have configured a connection pool. And you ask for a 5 connection objects.

Your connection pool is usually handled by a Container like Tomcat, Spring, or CQ5(in my case)

Now you leave your application idle for some time, but the container and the connection pool is still active

And now the magic trick, the Database server restarts as per schedule.

This makes the alive/active connection objects inside your application servers's connection Pool BROKEN

So you come in the next moment and suddenly you get these errors when it was working fine some time ago.

The Solution:

You can reset the connection pool- This is the best option. This would delete the current broken Connections residing in the pool and forcefully create a new Connection Pool with new connection objects inside them.

You can restart the application server. Not recommended.(You can't keep restarting application servers in Production)

Reference Link

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐