Does a return from java.sql.connection.commit() guarantee that the transaction is actually complete?  Or does Derby actually finish the transaction in the background?  Am I correct in assuming that Derby runs in its own thread?

I've run into a tricky problem.  It looks as if Derby's thread may be running and hanging  up.  My program stops for an over a minute
at a point where nothing is happening - between the end of  method and its return its the calling method.  This happens consistently at the same point, which is shortly after a series of Derby updates that are terminated by a connection.commit().  (However, the same thing happens if I run section of code in autocommit.)

Any information on Derby's threading would be appreciated.