MaD*_*aDa 5 database logging derby
我想看一下 Derby 的数据库日志;我指的不是 derby.log 文件,而是/[database name]/log目录中的二进制日志文件。有没有一种工具可以以人类可读的格式显示它们?
我询问的原因是我正在使用 Apache Derby(版本 10.6.1.0)在 Maven Failsafe 插件的帮助下进行自动集成测试。一些测试执行锁定记录的事务代码(OpenJPA 用作 ORM 工具)。有时,按照一定的测试顺序,测试会永远等待锁定,从而导致构建挂起。单独运行相同的测试时,会通过。最奇怪的是,每个测试在运行之前都会删除、创建并填充所有表,因此很难看出这种行为的明显原因。
通过将失败的测试放入单独的故障安全执行中,该问题得到了解决;尽管如此,我还是想阅读日志以了解发生了什么。
确实存在这样的工具,但它们的级别相当低。您可以在这里找到它们:https ://issues.apache.org/jira/browse/DERBY-5195
诊断此类锁定问题非常具有挑战性;希望阅读日志能为您提供一些线索。日志仅包含有关更新活动的信息,因此您需要使用其他方式推断读取活动。
您可以尝试的另一件事是看看是否可以增强测试过程以包括 lock_table 数据的调用(http://db.apache.org/derby/docs/10.8/devguide/cdevconcepts50894.html)。
可能是:(a) 你的 ORM 工具运行的代码比你想象的更多/不同,或者 (b) 你的 ORM 工具没有按照你想象的方式表达事务边界。
祝你好运!