321.13. JDBC ベースのべき等リポジトリーの使用


Camel 2.7 で利用可能: このセクションでは、JDBC ベースのべき等リポジトリーを使用します。

ヒント:*抽象クラス* Camel 2.9 以降から、カスタム JDBC べき等リポジトリーを構築するために拡張できる抽象クラス org.apache.camel.processor.idempotent.jdbc.AbstractJdbcMessageIdRepository があります。

最初に、べき等リポジトリーで使用されるデータベーステーブルを作成する必要があります。Camel 2.7 では、次のスキーマを使用します。

CREATE TABLE CAMEL_MESSAGEPROCESSED ( processorName VARCHAR(255),
messageId VARCHAR(100) )

 

Camel 2.8 では、createdAt 列を追加しました。

CREATE TABLE CAMEL_MESSAGEPROCESSED ( processorName VARCHAR(255),
messageId VARCHAR(100), createdAt TIMESTAMP )

警告: SQL Server の TIMESTAMP 型は、固定長のバイナリー文字列型です。DATETIME、または TIMESTAMP のいずれの JDBC 時刻型にもマップされません。

Customize the JdbcMessageIdRepository

Camel 2.9.1 以降、必要に応じて org.apache.camel.processor.idempotent.jdbc.JdbcMessageIdRepository を調整するためのいくつかのオプションがあります。

パラメーターデフォルト値説明

createTableIfNotExists

true

テーブルが存在しない場合、Camel がテーブルを作成しようとするかどうかを定義します。

tableExistsString

SELECT 1 FROM CAMEL_MESSAGEPROCESSED WHERE 1 = 0

このクエリーは、テーブルがすでに存在するかどうかを確認するために使用されます。テーブルが存在しないことを示すには、例外を出力する必要があります。

createString

CREATE TABLE CAMEL_MESSAGEPROCESSED (processorName VARCHAR(255), messageId VARCHAR(100), createdAt TIMESTAMP)

テーブルの作成に使用されるステートメント。

queryString

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

メッセージがリポジトリーにすでに存在するかどうかを判断するために使用されるクエリー (結果は 0 に等しくない)。2 つのパラメーターを取ります。この最初のものはプロセッサー名 (String) で、2 つ目はメッセージ ID (String) です。

insertString

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

エントリーをテーブルに追加するために使用されるステートメント。3 つのパラメーターを取ります。1 つ目はプロセッサー名 (String)、2 つ目はメッセージ ID (String)、3 つ目はこのエントリーがリポジトリーに追加されたときのタイムスタンプ (java.sql.Timestamp) です。

deleteString

DELETE FROM CAMEL_MESSAGEPROCESSED WHERE processorName = ?AND messageId = ?

データベースからエントリーを削除するために使用されるステートメント。2 つのパラメーターを取ります。この最初のものはプロセッサー名 (String) で、2 つ目はメッセージ ID (String) です。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.