我有一个启用了 oracle 审计(11g 非集群)的 Java/Hibernate/Spring 应用程序,它似乎配置正确。
但是,某些条目并未写入 SYS.AUD$。
这是我的场景:
我有一个在 Oracle 上执行 8 次插入的事务,由 hibernate 的 showsql 显示,实际上已写入数据库。
我对给定的表有一个 AUDIT INSERT RULE BY ACCESS,并且,我希望在 Oracle 的 AUDIT 中看到给定事务的 8 个审计条目,但我只记录了 4 个插入。有时会记录 5 个条目,有时会记录 3 个条目。
我设法追查到此行为与 hibernate.jdbc.batch_size 属性值有关。
在所描述的场景中,该值设置为 10。
但是,如果我将值更改为 0,这会禁用 jdbc 批处理,那么一切都会按预期工作,并且我总是会得到 8 个插入审计日志。
我认为这可能是 ojdbc 驱动程序上的一个错误,但即使我升级到最新版本,该错误仍然存在。
禁用 jdbc 批处理对我来说不是一个选项。这是一个错误吗?关于如何克服这个问题的任何想法?