Что происходит, когда транзакция в полете (удерживаемый набор результатов) откатывается в Derby после успешной фиксации? - PullRequest
0 голосов
/ 11 марта 2012

Если я не закрываю открытие ResultSet в Дерби и соединение использует ResultSet.HOLD_CURSORS_OVER_COMMIT для удержания, что произойдет, если я позвоню:

connection.commit();
connection.rollback();

Есть ли риск для звонка rollback() когда я явно зафиксировал текущую транзакцию?Я спрашиваю, потому что я нахожу, что мне всегда нужно позвонить rollback(), прежде чем я могу закрыть соединение, или я получаю исключение:

java.sql.SQLException: Cannot close a connection while a transaction is still active.

1 Ответ

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

Совершенно законно вызывать функцию rollback (), если вы не внесли никаких изменений в базу данных.

На самом деле, я выполняю транзакции только для чтения () только для чтения.

...