Выполнение запросов в HSQLDB во время транзакции

#sql #database #hsqldb

#sql #База данных #hsqldb

Вопрос:

Я запускаю тест с использованием HSQLDB и хочу иметь возможность выполнять запросы select к базе данных во время этого теста, чтобы увидеть, что меняется. Я полагаю, что транзакция или что-то еще блокирует базу данных во время тестирования, и я не могу выполнять запросы… Можно ли настроить сервер hsql таким образом, чтобы иметь возможность выполнять эти запросы?

Ответ №1:

Этот ответ действителен, если вы запускаете сервер HyperSQL и подключаетесь по jdbc:hsqldb:hsql:xxxx URL-адресу подключения.

Модель изоляции транзакций по умолчанию — БЛОКИРОВКИ. В этой модели таблицы блокируются, когда их строки изменяются во время транзакции. Вам необходимо использовать модель MVCC для базы данных, чтобы разрешить другим подключениям доступ к таблице.

Однако, когда вы изменяете строки, эти изменения видны только транзакции, которая вносит изменения, пока она не зафиксирует данные и изменения не станут видимыми для других соединений.