Я пытаюсь запустить Derby в режиме сетевого сервера из моего приложения Java с портом по умолчанию. Сервер успешно запускается. Теперь я пытаюсь подключиться к базе данных myDB на сервере. Соединение установлено, и db.lck успешно создан. Затем я выполняю пару транзакций, фиксирую и изящно закрываю соединение. Я вижу, что db.lck все еще там. Затем я выключил сетевой сервер. Я ожидаю дб. lck удаляется по окончании всех этих операций. Но это остается. (PS: ОС - Windows)
Ниже приведен код:
1) Запуск сервера:
System.setProperty("derby.system.home", "C:\\SI\\testDerby");
System.setProperty("derby.drda.traceDirectory", "C:\\SI\\trace");
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 был удален, когда я закрываю соединение или выключаю БД. Я что-то упускаю. Заранее спасибо.