несколько клиентов должны подключиться к локальной версии HyperSQL 2.2.8 и записать в hsqldb - PullRequest
2 голосов
/ 25 марта 2012

Мое требование заключается в том, что нескольким клиентам необходимо подключиться к локальной версии HyperSQL 2.2.8 и выполнить запись.Там также будет отдельный клиент, используемый для просмотра на той же машине.Таким образом, несколько клиентов-писателей и один клиент-читатель должны быть подключены к локальной версии HyperSQL 2.2.8.Я использую hibernate для чтения и записи из локального HyperSQL 2.2.8.

Я запускаю hsldb в качестве сервера, как этот java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 файл: mydb --dbname.0 xdb

Моя проблема в том, что первый клиент удерживает блокировку при подключении.Другие клиенты не могут писать.

Благодарим вас за помощь в решении этой проблемы.

Спасибо, Бала

Ответы [ 2 ]

1 голос
/ 25 марта 2012

После запуска сервера вы подключаетесь к нему с помощью URL jdbc:hsqldb:hsq://localhost/xdb. Если клиент считывателя выполняет длительные запросы, вам следует создать базу данных с моделями транзакций MVCC или MVLOCKS. См. Руководство: http://hsqldb.org/doc/2.0/guide/sessions-chapt.html#snc_tx_tx_cc

0 голосов
/ 14 октября 2016

Вы можете использовать свойство hsqldb.lock_file=false (по умолчанию true)

По умолчанию файл блокировки создается для каждой файловой базы данных, которая открыта для чтения и записи. Это свойство может быть указано со значением false, чтобы предотвратить создание файла блокировки. Такое использование не рекомендуется, но может быть желательно при использовании флэш-памяти. Это свойство применяется к существующему файлу: базы данных, а также новые базы данных.

Пожалуйста, смотрите http://hsqldb.org/doc/guide/dbproperties-chapt.html

...