Завершение работы сетевого сервера derby не приводит к удалению db.lck - PullRequest
7 голосов
/ 18 мая 2011

Я пытаюсь запустить Derby в режиме сетевого сервера из приложения Java с портом по умолчанию.Сервер успешно запускается.Теперь я пытаюсь подключиться к БД с именем «myDB» на сервере.Соединение установлено, и db.lck успешно создан.Затем я делаю пару транзакций, изящно фиксирую и закрываю соединение.Я вижу, что db.lck все еще там.Затем я выключаю сетевой сервер.Я ожидаю, что файл db.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 при закрытии соединения или выключении БД.Я думаю, что что-то упустил.Заранее спасибо.

1 Ответ

3 голосов
/ 18 мая 2011

Возможно, выключение сервера не завершает работу базы данных;попробуйте выполнить явное отключение базы данных перед выключением сервера, как описано здесь: http://db.apache.org/derby/docs/10.8/devguide/tdevdvlp40464.html#tdevdvlp40464

...