Как запустить базу данных H2 в режиме сервера?

Как запустить базу данных H2 в режиме сервера. Мне нужно запустить его из моего приложения. Я пробовал следующий код:

server = Server.createTcpServer().start(); 

Вот свойства для соединения:

 javabase.jdbc.url = jdbc:h2:tcp://localhost:9092/nio:~/source/db/database/db;AUTO_SERVER=TRUE javabase.jdbc.driver = org.h2.Driver javabase.jdbc.username = sa javabase.jdbc.password = 

Когда я запускаю программу, я получил следующую ошибку:

 client.db.exception.DAOException: org.h2.jdbc.JdbcSQLException: Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-164] 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.store.FileLock.getExceptionAlreadyInUse(FileLock.java:439) at org.h2.store.FileLock.lockFile(FileLock.java:336) at org.h2.store.FileLock.lock(FileLock.java:128) at org.h2.engine.Database.open(Database.java:542) at org.h2.engine.Database.openDatabase(Database.java:222) at org.h2.engine.Database.(Database.java:217) at org.h2.engine.Engine.openSession(Engine.java:56) at org.h2.engine.Engine.openSession(Engine.java:159) at org.h2.engine.Engine.createSessionAndValidate(Engine.java:138) at org.h2.engine.Engine.createSession(Engine.java:121) at org.h2.server.TcpServerThread.run(TcpServerThread.java:133) at java.lang.Thread.run(Thread.java:680) 

Благодаря,

Как говорится в сообщении об исключении, «База данных может быть уже использована». Вам нужно закрыть все другие соединения, чтобы убедиться, что firebase database не открыта в другом процессе одновременно.

Кстати, не используйте AUTO_SERVER = TRUE и режим сервера одновременно. См. Документацию для автоматического смешанного режима . Используйте один из них.

Я думаю, вы немного смущены в разных режимах подключения. Я предлагаю прочитать документацию о режимах подключения , чтобы убедиться, что вы ее понимаете.

Из командной строки,

 java -jar h2-1.3.160.jar -webAllowOthers -tcpAllowOthers 

это запустит базу данных h2 в режиме сервера:

Сервер веб-консоли, работающий по адресу http: // ABCD: 8082 (другие могут подключиться) Не удалось запустить браузер, чтобы открыть URL-адрес http: // ABCD: 8082 : обнаружено обнаружение браузера и системное свойство h2.browser не установлен TCP-сервер, запущенный на tcp : // ABCD: 9092 (другие могут подключаться) Сервер PG работает на pg: // ABCD: 5435 (только локальные подключения)

открыть браузер, чтобы иметь графический интерфейс администратора

Вы можете использовать следующий код для запуска H2 в режиме сервера.

       

Вы можете использовать SQuirrel SQL client ( http://squirrel-sql.sourceforge.net/ ) для подключения к вам базы данных H2 и просмотра таблиц.

  1. Создайте новое соединение.
  2. Выберите H2 в раскрывающемся меню драйвера
  3. Установите url в папку назначения целевой папки проекта h2 (jdbc: h2: C: \ projects \ workspace \ TestProject \ target / h2 / ps; AUTO_SERVER = true)
  4. Введите имя пользователя (“sa”)
  5. Введите пароль (“”)

Закройте все приложения, которые используют H2 (веб-консоль и т. Д.). Затем добавьте AUTO_SERVER = TRUE в конец местоположения в консоли h2, а также в java-программе (которую вы уже сделали)

  • IntelliJ не может запускать простое веб-приложение: невозможно подключиться к серверу ping на localhost: 1099
  • Почему Итератор Java не является Iterable?
  • Netty против Apache MINA
  • Что вызывает исключение java.lang.ArrayIndexOutOfBoundsException и как его предотвратить?
  • Является ли WEB-INF в CLASSPATH?
  • Запись файла в hdfs с помощью Java
  • Чат клиента смайликов окно JAVA
  • Java JDBC игнорирует setFetchSize?
  • Как определить, содержит ли строка строку с неверными кодированными символами
  • Почему в Java 8 split иногда удаляет пустые строки при начале массива результатов?
  • Разница между несвязанным подстановочным знаком и необработанным типом
  • Давайте будем гением компьютера.