This is the normal behavior, which is admittedly a little quirky.  I suspect the rationale is that the method must either return a valid connection, or throw an exception, and in this case only the latter is possible.  Personally, I’d rather have a utility method for shutting Derby down, though one can easily write that using the current getConnection() facility.  However, one flaw that I see is that it doesn’t seem possible to detect when shutdown fails.

 

Jim

 


From: Henrik Frisk [mailto:frisk.h@gmail.com]
Sent: Monday, February 11, 2008 11:24 AM
To: derby-user@db.apache.org
Subject: Shutdown of embedded Derby server throws an SQLException?

 

Hi,

I'm just starting to familiarize myself with the Derby Java API and I keep getting an Exception when I'm trying to shut down an embedded server using the following call:

DriverManager.getConnection("jdbc:derby:;shutdown=true");

Now, I was just looking at the SimpleNetworkServerSample demo that comes with the db-derby download and saw he following:

            try
            {
                // shutdown Derby Network Server
                DriverManager.getConnection("jdbc:derby:;shutdown=true");
            }
            catch(SQLException se)
            {
                //ignore se
            }

The comment //ignore se made me think maybe it's normal it throws an Exception. If not, what would be the right way to shut down the server? I'm starting the server with

System.setProperty("derby.drda.startNetworkServer","true");

and run it with the embedded driver. The db will run strictly on localhost and I'm in control of the clients connecting to it.

Any hints would be greatly appreciated,

Henrik