关闭derby网络服务器不会删除db.lck
我试图从默认端口的Java应用程序启动网络服务器模式下的Derby。 服务器启动成功。 现在我尝试连接到服务器上的一个名为'myDB'的数据库。 连接建立并且db.lck被成功创建。 然后,我做一些事务,优雅地提交并关闭连接。 我看到db.lck仍然存在。 然后关闭网络服务器。 我希望在所有这些操作结束时删除db.lck文件。 但它仍然存在。 (PS:OS是Windows)
以下是代码:
1)启动服务器:
System.setProperty("derby.system.home", "C:SItestDerby");
System.setProperty("derby.drda.traceDirectory", "C:SItrace");
System.setProperty("derby.drda.traceAll", "true");
System.setProperty("derby.drda.logConnections", "true");
System.setProperty("derby.connection.requireAuthentication", "false");
serverHandle = new NetworkServerControl();
// Write server console messages to system output
serverHandle.start(new PrintWriter(System.out));
2)连接到数据库
final String PORT = 1527;
String driver = "org.apache.derby.jdbc.ClientDriver";
String dbName = "myDB";
String connectionURL = "jdbc:derby:" + "//localhost:"
+ PORT + "/" + dbName + ";create=true";
Class.forName(driver).newInstance();
Connection conn = DriverManager.getConnection(connectionURL);
Statement stmt = conn.createStatement();
boolean success = stmt.execute("DROP TABLE USERS");
PreparedStatement statement = conn.prepareStatement("CREATE TABLE USERS (id BIGINT not null, name VARCHAR(20))");
success = statement.execute();
conn.commit();
conn.close();
3)关闭服务器
serverHandle.shutdown();
任何人都可以请帮我解决这个问题吗? 当我关闭连接或关闭数据库时,我需要删除db.lck文件。 我想我错过了一些东西。 提前致谢。
也许关闭服务器不会关闭数据库; 请尝试在关闭服务器之前执行显式数据库关闭,如下所述:http://db.apache.org/derby/docs/10.8/devguide/tdevdvlp40464.html#tdevdvlp40464
链接地址: http://www.djcxy.com/p/7067.html上一篇: Shutting down derby Network server doesnt delete db.lck