51.16.6. PostgreSQL 问题单


有特殊的数据库可能会导致 JdbcAggregationRepository 使用优化的锁定问题。如果数据完整性冲突异常(SQLState 23505)除外),PostgreSQL 会将连接标记为无效。这使得连接在嵌套事务中有效不可用。详情请参考 文档

org.apache.camel.processor.aggregate.jdbc.PostgresAggregationRepository 扩展 JdbcAggregationRepository,并使用特殊的 INSERT。ON CONFLICT .. 语句提供优化锁定行为。

此声明为 (带有默认的聚合表定义):

INSERT INTO aggregation (id, exchange) values (?, ?) ON CONFLICT DO NOTHING
Copy to Clipboard Toggle word wrap

详情请参考 PostgreSQL 文档

当使用此 子句时,java.sql.PreparedStatement.executeUpdate () 调用返回 0, 而不是抛出 SQLState=23505 的 SQLException。进一步处理与通用 JdbcAggregationRepository 相同,但没有将 PostgreSQL 连接标记为无效。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat