У меня есть приложение Java / Hibernate / Spring с включенным аудитом Oracle (11g некластеризованным), и, похоже, оно правильно настроено.
Однако некоторые записи не записываются в SYS.AUD $.
Вот мой сценарий:
У меня есть транзакция, которая выполняет 8 вставок в Oracle, которые отображаются с помощью showql hibernate и фактически записываются в БД.
У меня есть правило AUDIT INSERT BY ACCESS для данной таблицы, и я ожидал увидеть 8 записей аудита в Oracle AUDIT для данной транзакции, но у меня было зарегистрировано только 4 вставки. Иногда регистрируется 5 записей, а иногда 3 жесткие.
Мне удалось выяснить, что такое поведение связано со значением свойства hibernate.jdbc.batch_size.
В описанном сценарии было установлено значение 10.
Однако если я изменю значение на 0, что отключит пакетную обработку jdbc, все будет работать так, как ожидалось, и я всегда получаю 8 журналов аудита вставки.
Я думал, что это может быть ошибка драйвера ojdbc, но ошибка не исчезла даже после того, как я обновился до последней версии.
Отключение пакета jdbc для меня не вариант. Это ошибка? Есть мысли о том, как это преодолеть?