325.17. PostgreSQL 사례
JdbcAggregationRepository
에서 사용하는 최적화된 잠금에 문제를 일으킬 수 있는 특수 데이터베이스가 있습니다. PostgreSQL은 데이터 무결성 위반 예외(SQLState 23505)인 경우 PostgreSQL이 연결이 유효하지 않음으로 표시합니다. 이로 인해 중첩된 트랜잭션에서 연결을 효과적으로 사용할 수 없게 됩니다. 자세한 내용은 이 문서에서 확인할 수 있습니다.
org.apache.camel.processor.aggregate.jdbc.PostgresAgregationRepository
는 JdbcAgregationRepository
를 확장하고 INSERT .. ON CONFLICT .
는 최적화된 잠금 동작을 제공합니다.
이 설명은 (기본 집계 테이블 정의 포함)입니다.
INSERT INTO aggregation (id, exchange) values (?, ?) ON CONFLICT DO NOTHING
INSERT INTO aggregation (id, exchange) values (?, ?) ON CONFLICT DO NOTHING
자세한 내용은 PostgreSQL 문서에서 확인할 수 있습니다.
이 절을 사용하는 경우 java.sql.PreparedStatement.executeUpdate()
호출은 SQLState=23505를 사용하여 SQLException을 throw하는 대신 0
을 반환합니다. 추가 처리는 일반 JdbcAggregationRepository
와 정확히 동일하지만 PostgreSQL 연결을 유효하지 않습니다.