java.sql.SQLRecoverableException: No more data to

2020-08-01 02:12发布

问题:

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 ?

回答1:

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