I'm using derby as an embedded database. Furthermore, I'm using it's in memory database option for my unit tests.
What I can't figure out is how to properly shut down (A quick look at the code) the derby database. I beleive I have it working for a standard database but I'm getting different exceptions when attempt similar code on a in-memory database.
I'm going to omit details, I'll add it if other feel it is needed.
Basically, I'm trying to shut down my database in these two fashions where my in memory database is consistently called "eh":
DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");
then:
DriverManager.getConnection("jdbc:derby:eh;shutdown=true");
The former results in an exception but not the one expected. The details are:
java.sql.SQLNonTransientConnectionException: Database 'memory:eh' shutdown.
The latter results in
java.sql.SQLException: Database 'eh' not found.
Based on what I've been able to figure out, we want a SQLException
but not the one we receive. On the other hand, the SQLNonTransientConnectionException
error seems more appropriate but isn't the right type (though it is derived from SQLException
) nor does it have the right state code. The state code end up being: 08006
The example code I have illustrates that a SQLException
with a SQL state of "XJ015".
Note: The example I'm referencing is: WwdEmbedded Program | Java Code