2013-10-01 5 views
0

У меня есть 2 базы данных H2 под 2 разных местахКак получить доступ к конкретным H2 базы данных

D:\test\activitiDB\activiti.h2.db 
and 
D:\myapps\jbpmDB\jbpmdb1.h2.db 

В HSQL, я могу указать псевдоним для базы данных в файлах свойств HSQL и просто использовать имя псевдонима в JDBC URL-адрес, подобный этому:

jdbc:hsqldb:hsql://localhost:9001/myDB1 

где псевдоним myDB1 фактически указывает на некоторое местоположение файла, указанное в базе данных HSQL.

Возможно ли использовать что-то подобное в системе баз данных H2?

Так что я могу получить доступ к базам данных H2 из SQL клиента или код JAVA-то вроде:

jdbc:h2:tcp://localhost:9092/jbpmdb1 
OR 
jdbc:h2:tcp://localhost:9092/activiti 

Прямо сейчас, используя вышеупомянутый URL показывает этот StackTrace в моем SQL Client:

java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.h2.jdbc.JdbcSQLException: Database "D:/apps/dumps/H2_DB/bin/activiti" not found [90013-172] 
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:329) 
    at org.h2.message.DbException.get(DbException.java:169) 
    at org.h2.message.DbException.get(DbException.java:146) 
    at org.h2.engine.Engine.openSession(Engine.java:54) 
    at org.h2.engine.Engine.openSession(Engine.java:160) 
    at org.h2.engine.Engine.createSessionAndValidate(Engine.java:139) 
    at org.h2.engine.Engine.createSession(Engine.java:122) 
    at org.h2.server.TcpServerThread.run(TcpServerThread.java:138) 
    at java.lang.Thread.run(Unknown Source) 

Спасибо.

ответ

2

В H2 нет механизма псевдонимов, как в HSQLDB. Что вы можете сделать в H2, задано one base directory на сервер. Если вам нужно несколько базовых каталогов, вы можете начать с несколькими серверами (на разных портах), следующим образом:

java org.h2.tools.Server -tcp -tcpPort 9091 -baseDir D:\test\activitiDB 
java org.h2.tools.Server -tcp -tcpPort 9092 -baseDir D:\myapps\jbpmDB 
+1

Чтобы получить доступ к базе данных от клиента использовать URL, который напоминает это: JDBC: h2: TCP:// : /./ <имя_файла> – Thunder