Альтернатива быстрого переключения для режима файлов HSQLDB (мне нужен параллельный доступ сейчас) - PullRequest
3 голосов
/ 26 августа 2009

Я с удовольствием работал с HSQLDB, просто имея URL-адрес своей БД:

jdbc:hsqldb:file:target/testdb;

... и все, как если бы я был в любой другой сетевой базе данных. Затем вдруг одно требование ударило меня прямо в голову, мне нужен другой экземпляр JVM (на том же компьютере) для подключения к базе данных для генерации некоторых отчетов.

Я читал о Derby и Berkeley DB, но, похоже, мне нужно настроить некоторые env-переменные, и мой клиент попросил меня запрограммировать эту систему без какой-либо специальной настройки (не нужно создавать env-переменные).

Я думал о том, чтобы иметь независимый поток для параллельного запуска HSQL в режиме сервера, но я бы предпочел использовать другой механизм БД, такой же простой, как HSQLDB, но с поддержкой одновременного доступа в файловом режиме. Надеюсь, вы, ребята, знаете о прямой альтернативе для решения моей проблемы

Ответы [ 3 ]

1 голос
/ 26 августа 2009

SQLite может быть хорошим вариантом. См. этот ТАК вопрос .

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

1 голос
/ 26 августа 2009

Вместо того, чтобы иметь другую базу данных, переносить и синхронизировать данные между вашей базой данных in proc, лучше запускать HSQL в режиме сервера в отдельной JVM. Вот как

0 голосов
/ 26 августа 2009

Я бы предложил вам рассмотреть набор возможных решений JDBC, в частности, рассмотреть решения, которые позволят программам обмениваться доступом к данным:

  1. Общий доступ к тому же файлу
  2. Индивидуальные розетки / подключения к СУБД
  3. Передача сообщений между двумя программами

Поскольку вам нужна поддержка JDBC из коробки (то есть вы не хотите реализовывать что-либо ниже уровня JDBC), я думаю, что # 3 и # 1 не работают. Это оставляет вас с # 2.

Есть ли причина, по которой вы думаете, что запуск HSQL в отдельном потоке делает ваши вызовы JDBC менее простыми? Где работает HSQL, не влияет на интерфейс для доступа к нему.

...