I am using Tomcat 6.0.29 and the Derby embedded driver 10.5.3 and JDK 1.6.0_18. 
When I shutdown Tomcat, I get the following errors in the catalina.log file:

SEVERE: The web application [/MyApp] registered the JBDC driver 
[org.apache.derby.jdbc.AutoloadedDriver] but failed to unregister it when the 
web application was stopped. To prevent a memory leak, the JDBC Driver has been 
forcibly unregistered.
SEVERE: The web application [/MyApp] created a ThreadLocal with key of type 
[org.apache.derby.iapi.sql.dictionary.TableDescriptor$1] (value 
[org.apache.derby.iapi.sql.dictionary.tabledescripto...@d133a3]) and a value of 
type [java.util.WeakHashMap] (value [{={1, 2, 3, 4}, =null, =null}]) but failed 
to remove it when the web application was stopped. This is very likely to 
create a memory leak.

I found a reference to these errors in this issue report:

https://issues.apache.org/jira/browse/DBCP-332

But they are related to the BasicDataSource.close() and Spring. I am not using 
BasicDataSource.

I connect to the database as follows:


          Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
          String connectionURL = "jdbc:derby:" + databaseName + ";create=true";
          Connection conn = DriverManager.getConnection(connectionURL);


                           conn.close();

On application shutdown, I shut the Derby system down as follows:

                    DriverManager.getConnection("jdbc:derby:;shutdown=true");

I have no open connections that would cause this.

Has anyone seen this issue with the embedded driver?

Thanks

Reply via email to