org.h2.jdbc.jdbcsqlexception база данных доступна только для чтения

#java #database #transactions #h2

#Ява #База данных #операции #h2

Вопрос:

Я хотел бы попросить вас помочь с проблемой базы данных H2. Основная проблема база данных доступна только для чтения, и я не смог найти способ ее решения. Файл базы данных имеет правильные разрешения, поэтому проблема должна быть в базе данных. Я нашел возможное решение, которое гласит, что если есть незафиксированные транзакции, то они должны быть совершены или откатаны. В моей базе данных есть незафиксированные транзакции, однако я не могу видеть ее идентификатор (пустой?!):

 sqlgt; SELECT * FROM INFORMATION_SCHEMA.IN_DOUBT; TRANSACTION | STATE  | IN_DOUBT (1 row, 1 ms) sqlgt; rollback transaction " "; Error: org.h2.jdbc.JdbcSQLException: Transaction " " not found; SQL statement: rollback transaction " " [90129-161]  sqlgt; rollback transaction where state = 'IN_DOUBT'; Error: org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement "ROLLBACK TRANSACTION WHERE[*] STATE = 'IN_DOUBT' "; expected "identifier"; SQL statement: rollback transaction where state = 'IN_DOUBT' [42001-161]  

Я попытался каким-то образом удалить заблокированные транзакции, но безуспешно. У вас есть какие-либо идеи, как я могу откатить транзакцию в этом случае?

Спасибо и с наилучшими пожеланиями, Питер