【发布时间】:2019-10-07 12:17:42
【问题描述】:
场景: 我的旧配置是 SLES11 PuppetMaster 3.7.5 服务器和 SLES11 PuppetDB 2.3.3 服务器(PostgreSQL 9.4、JDBC 9.1 和 JDK 1.7),可以正常工作。
我还安装了一个新的测试 SLES12 以查看 PostgreSQL 10 是否可以与我们的 PuppetDB 一起使用。
当 PuppetDB 尝试远程连接/写入时,它会给出错误"transaction isolation level 4 not supported"。
根据链接,postgresql Transaction isolation level 4 not supported我的 JDBC 驱动程序太旧了。
我尝试将它们更新到 JBDC 42.2,但它仍然会出现相同的错误,无论是远程 PostgreSQL 10 还是本地 PostgreSQL 9.4(JDBC 9.1 都没有问题)。
【问题讨论】:
-
请提供异常的完整堆栈跟踪。如果您的应用程序确保路径上没有旧版本的驱动程序,我建议您仔细检查类路径。
-
"2019-09-05 12:34:42,679 ERROR [c.p.p.command] [54390b551-8549a-4455-erbb-cer8ere19a25] [replace catalog] Retrying after attempt 4, due to: org.postgresql.util.PSQLException: Transaction isolation level 4 not supported."我的“应用程序”是 PuppetDB。不知道如何以及在哪里轻松检查它 -
看起来异常是由 JDBC 驱动程序抛出的,尽管堆栈跟踪会更清楚。我倾向于相信您执行的任何更新都不会影响 PuppetDB 正在使用的驱动程序副本。
-
更准确地说。我尝试使用 JDBC 9.4 实际更新旧机器上的驱动程序,以及在新的空白 SLES12 上从头开始安装 PuppetDB、PostgreSQL10 和 JDBC42.2 的所有内容。因此,我高度怀疑“老司机”是否是问题所在。其他东西的组合会引发这个错误吗?我不知道如何编辑 PuppetDB.jar 或 JDBC 以添加任何调试。
标签: java postgresql unix jdbc puppet