Are you sure all of the file streams are flushed and closed after the transfer?  Can you check with some tool like 'lsof' on Linux or some tool from SysInternals if Windows?  After shutdown of the embedding VM, all handles would be closed, which might be why ij works after that.  Just a thought.


On Wed, Apr 14, 2010 at 6:03 AM, gmbradford <> wrote:

I have a java application that gets a copy of a Derby database that is
transferred to it over a network. (The sending end freezes the DB and then
sends the files over a socket.) The receiving jvm closes the socket and
streams when the database transfer is complete, and then connects to it to
do some sql. The sql includes delete statements, drop trigger statements,
and drop table statements. The delete statements consistently work fine, but
the drop trigger and drop table statements don't always work (sometimes they
do). When they don't, we see SqlSyntaxErrorException, with the complaint
that the trigger or table does not exist. We can't look at the DB while this
jvm is running because it's using embedded mode, but when it's stopped, ij
shows that the triggers and tables exist and from ij the drops work fine.

I'm wondering if anyone has an idea why this might be happening.
View this message in context:
Sent from the Apache Derby Users mailing list archive at