Spring JDBC появляется для случайного отката транзакций

Я проверял непротиворечивость базы данных во время тестирования веб-приложений и обнаружил странное явление.

Между определенными временами в каждой таблице есть пробел в идентификаторах. т. е. все идентификаторы между 114 и 130 исчезли, и их разделяет примерно 20 минут.

Чтобы уточнить, это выглядит как откат транзакции; нет записей строк, триггеры не выполнялись и журналы не записывались.

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

Опция автофиксации включена, и в этот период сервер не перезагружался.

Кто-нибудь слышал, чтобы что-то подобное происходило раньше? Любая помощь или предложения будут высоко оценены ...

Спасибо.


РЕДАКТИРОВАТЬ:

Глядя в журналы Tomcat, кажется, что сервер принудительно перезапустился в нужное время. Приведет ли это JDBC к откату такой транзакции?

Сервер, кажется, перезапустился без причины... Это ошибка с Tomcat или JDBC?


person Jivings    schedule 15.12.2010    source источник
comment
С одной стороны, включение автоматической фиксации звучит как плохая идея. Но если у вас включена автоматическая фиксация, как вы можете откатить крупную транзакцию?   -  person Nathan Hughes    schedule 15.12.2010
comment
Хороший вопрос, понятия не имею. Кто-нибудь может рассказать, как Spring JDBC обрабатывает транзакции?   -  person Jivings    schedule 15.12.2010
comment
Я думаю, что предположение, что это была одна крупная транзакция, может быть неверным. Учитывая перезапуск, это, вероятно, была одна транзакция, которая предпринималась много раз. Что бы ни вызывало откат транзакции, вероятно, была утечка памяти или что-то еще, что в конечном итоге вызвало перезапуск.   -  person Preston    schedule 15.12.2010
comment
Возможно. Я проверял монитор активности базы данных, и похоже, что Spring открывает транзакцию в базе данных, которая спит, когда на самом деле не используется. Уничтожение этой транзакции, похоже, не вызывает отката, который я видел. И Spring повторно открывает транзакцию при следующем запросе к базе данных.   -  person Jivings    schedule 15.12.2010
comment
Tomcat не перезапускается без причины, что-то вызвало это.   -  person skaffman    schedule 15.12.2010


Ответы (1)


Я думаю, что все согласны с тем, что некрасивое закрытие Tomcat вызвало откат.

Я начал использовать другую реализацию диспетчера транзакций Springs, которая, надеюсь, не вызовет повторения проблемы.

Спасибо.

person Jivings    schedule 17.12.2010