Doesn't the RMI engine create multiple connections and manage them?
I saw a few posts out here about a serverConnectionFactory class and did not understand the reason for it.
A better way of doing it is to have a "Factory" class. In your GUI, you create your connection using the Factory class, and do all your database calls through the connection object that you get returned.
What does LockManager and ReadWriteLock classes does in your design?
Do you have lock/unlock methods in your DB interface?
and how do you do a clean shutdown on the server? Do you consider calling the unbind() method as way to shutdown the server?