325.13. JDBC 기반 idempotent 리포지토리 사용


Camel 2.7: 이 섹션에서는 JDBC 기반 idempotent 리포지토리를 사용합니다.

TIP:* Camel 2.9 이후의 경우 사용자 지정 JDBC idempotent 리포지토리를 빌드하도록 확장할 수 있는 abstract class org.apache.camel.processor.idempotent.jdbc.AbstractJdbcMessageIdRepository 가 있습니다.

먼저 idempotent 리포지토리에서 사용할 데이터베이스 테이블을 만들어야 합니다. Camel 2.7 의 경우 다음 스키마를 사용합니다.

CREATE TABLE CAMEL_MESSAGEPROCESSED ( processorName VARCHAR(255),
messageId VARCHAR(100) )
Copy to Clipboard Toggle word wrap

 

Camel 2.8 에서 createAt 열을 추가했습니다.

CREATE TABLE CAMEL_MESSAGEPROCESSED ( processorName VARCHAR(255),
messageId VARCHAR(100), createdAt TIMESTAMP )
Copy to Clipboard Toggle word wrap

경고: SQL Server TIMESTAMP 유형은 고정 길이 바이너리 문자열 유형입니다. JDBC 시간 유형: DATE,TIME, 또는 TIMESTAMP 에 매핑되지 않습니다.

JdbcMessageIdRepository 사용자 지정

Camel 2.9.1 부터 필요에 맞게 org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository 를 튜닝할 수 있는 몇 가지 옵션이 있습니다.

Expand
매개변수기본값설명

createTableIfNotExists

true

Camel이 존재하지 않는 경우 테이블을 생성할지 여부를 정의합니다.

tableExistsString

SELECT 1 FROM CAMEL_MESSAGEPROCESSED WHERE 1 = 0

이 쿼리는 테이블이 이미 존재하는지 여부를 파악하는 데 사용됩니다. 테이블이 존재하지 않음을 나타내기 위해 예외를 throw해야 합니다.

createString

CREATEECDHE CAMEL_MESSAGEPROCESSED(processorName VARCHAR(255), messageId VARCHAR(100), TIMESTAMP에서 생성된 메시지)

테이블을 만드는 데 사용되는 문입니다.

queryString

SELECT COUNT(*) FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ? AND messageId = ?

메시지가 리포지토리에 이미 존재하는지 파악하는 데 사용되는 쿼리입니다(결과가 '0'과 같지 않음). 두 개의 매개 변수가 필요합니다. 이 첫 번째 하나는 프로세서 이름(문자열)이고, 두 번째는 메시지 ID(문자열)입니다.

insertString

FlexVolume INTO CAMEL_MESSAGEPROCESSED(processorName, messageId, createdAt) VALUES(?, ?, ?)

테이블에 항목을 추가하는 데 사용되는 문입니다. 3개의 매개 변수가 필요합니다. 첫 번째는 프로세서 이름(문자열)이고, 두 번째는 메시지 ID(문자열)이고 세 번째는 타임스탬프(java.sql.Timestamp)입니다. 이 항목이 리포지토리에 추가됩니다.

deleteString

DELETE FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ? AND messageId = ?

데이터베이스에서 항목을 삭제하는 데 사용되는 문입니다. 두 개의 매개 변수가 필요합니다. 이 첫 번째 하나는 프로세서 이름(문자열)이고, 두 번째는 메시지 ID(문자열)입니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat