Bryan Pendleton wrote:
Moving this discussion to Derby-Dev because I want to ask a code-related
question to Oystein:
Have you had a chance to look at
http://issues.apache.org/jira/browse/DERBY-51
Your comments seem to relate to a number of the issues raised in this
bug.
In particular, I am trying to understand the differences, *in the Network
Server Environment*, between:
- Shutting down a single database that is being served by the Network
Server
- Shutting down all the databases that the NS is serving, but leaving
the
NS itself up and running
- Shutting down the Network Server itself, either
- with, or
- without shutting down the databases it is serving
I've only looked at this a little bit, and have made myself thoroughly
confused, so I was hoping that maybe you could shed some light in this
area.
thanks,
bryan
-------- Original Message --------
Subject: Re: [SHUTDOWN] Should I shutdown embedded data base ?
From: Oystein Grovlen - Sun Norway <[EMAIL PROTECTED]>
Note that a derby shutdown is just a shutdown of all databases you have
opened. If you just have a single database, a single shut down is
enough.
Hi -
There are two forms of shutdown and this is how it has been explained to me:
1) Used with a URL specifying a database name
(jdbc:derby:myDB;shutdown=true) shuts down THE database specified by
closing out all transactions, flushing the buffers to disk,
checkpointing the transaction log and removing the db.lck file. NOTE:
it leaves the Derby engine running within the JVM
2) Use without a database name (jdbc:derby:;shutdown=true) shuts down
ALL database that were booted (doing all the above things for each) then
shutsdown the Derby engine it self (I believe this means unloading the
driver but Oystein will know for sure).
I believe (Oystein or someone in the code can you confirm this) that
when Network Server is shutdown it basically performs the form 2 (ALL)
shutdown of Derby before exiting (if it does not then a bug needs to be
filed). Unless there are specific reasons to do otherwise it is best
NOT to shutdown datbases from the application but to let them be
shutdown when the Server is shutdown.
The reason is that there is no way to tell if someone else is also
connected to the DB. If they are and you shutdown the DB the next query
they make will fail cause the DB is gone. We need to play nicely in a
shared environment.
I think this addresses the situations you describe. I have noted that
no database shutdown messages are writen to the log when the databases
are shutdown along with Network Server and the db.lck file still exists
afterwards so this process could use improvement.