The deregister=false attribute, if set to true (the default), deregisters the embedded JDBC driver from the DriverManager after a shutdown, so that the Derby classes can be garbage-collected.
If you are running with a security manager on JDK 8 or higher, you must grant the following permission to derby.jar to allow the JDBC driver to be deregistered:
permission java.sql.SQLPermission "deregisterDriver";
See "Configuring Java security" in the Derby Security Guide for details. If you do not grant this permission when using a security manager, an error message and stack trace will appear in derby.log on shutdown, and the embedded JDBC driver will remain registered.
If you are running with a security manager on JDK 6 or 7, you do not need to set this permission.
You initially register the embedded driver by calling a DriverManager method such as DriverManager.getDrivers() or DriverManager.getConnection().
Once the embedded driver is registered, you can shut down the Derby engine by using the shutdown=true connection URL attribute. If you also specify deregister=false with the shutdown URL, the following will happen:
In contrast, if you use the default setting of deregister=true when you shut down the database, the following will happen:
This attribute has no meaning if it is used with the network driver.
This attribute is valid only when issued in conjunction with the shutdown=true attribute.
-- shut down salesDB and deregister the driver jdbc:derby:salesDB;shutdown=true -- shut down salesDB, but do not deregister the driver jdbc:derby:salesDB;shutdown=true;deregister=false