Хорошо, мне нужно создать hsqldb в режиме сервера и подключиться к этому серверу с другого клиента (например, из runManagerSwing.bat).
Вот мой код:
public static Server server = new Server();
public static void main(String[] args) throws IOException, ServerAcl.AclFormatException, SQLException {
HsqlProperties p = new HsqlProperties();
p.setProperty("server.database.0", "file:./db/myHsqlDb");
p.setProperty("server.dbname.0", "idt_simulatordb");
p.setProperty("server.port", "9001");
server.setProperties(p);
server.setSilent(false);
server.setTrace(true);
server.start();
(1) Connection conn = DriverManager.getConnection("jdbc:hsqldb:hsql://localhost:9001/idt_simulatordb", "sa", "");
Statement st = conn.createStatement();
String expression1 = "DROP SCHEMA IF EXISTS simulators CASCADE;\n";
String expression2 = "CREATE SCHEMA SIMULATORS AUTHORIZATION SA;";
String expression3 = "CREATE TABLE SIMULATORS.dirtyhack();";
String expression4 = "DROP SCHEMA IF EXISTS myschema CASCADE;\n";
String expression5 = "CREATE SCHEMA myschema AUTHORIZATION SA;";
st.executeUpdate(expression1);
st.executeUpdate(expression2);
st.executeUpdate(expression3);
st.executeUpdate(expression4);
st.executeUpdate(expression5);
st.close();
conn.close();
(2)server.shutdown();
}
Чтобы проверить, что с моим сервером все в порядке, я добавляю строку (1). И это действительно хорошо. Но я хочу подключиться из другого инструмента. Для этого я ставлю точку останова перед (2) и запускаю клиент runManagerSwing.bat.
Клиент успешно находит сервер, но приостанавливается. Иногда просыпается, если я делаю несколько шагов между строкой (1) и (2).
- Почему это происходит? Может быть, я должен запустить сервер из другого потока? Как это сделать?
- И второй вопрос. Я хочу очистить все файлы hsqldb после выключения (даже .properties и .script). Есть ли какие-либо предпочтения для этого, или я должен удалить его вручную?
p.s. извините за мой английский