JDBC 元資料儲存

5.0 版本引入了 JDBC MetadataStore(參見元資料儲存)實現。您可以使用 JdbcMetadataStore 在應用程式重啟後維護元資料狀態。此 MetadataStore 實現可與以下介面卡一起使用:

要配置這些介面卡以使用 JdbcMetadataStore,請使用 bean 名稱 metadataStore 宣告一個 Spring bean。Feed 入站通道介面卡和 feed 入站通道介面卡都會自動選擇並使用宣告的 JdbcMetadataStore,如以下示例所示:

@Bean
public MetadataStore metadataStore(DataSource dataSource) {
    return new JdbcMetadataStore(dataSource);
}

org.springframework.integration.jdbc 包為多個 RDMBS 供應商提供了資料庫模式指令碼。例如,以下列表顯示了元資料表的 H2 DDL:

CREATE TABLE INT_METADATA_STORE  (
	METADATA_KEY VARCHAR(255) NOT NULL,
	METADATA_VALUE VARCHAR(4000),
	REGION VARCHAR(100) NOT NULL,
	constraint INT_METADATA_STORE_PK primary key (METADATA_KEY, REGION)
);

您可以更改 INT_ 字首以匹配目標資料庫設計要求。您還可以將 JdbcMetadataStore 配置為使用自定義字首。

JdbcMetadataStore 實現了 ConcurrentMetadataStore,使其能夠可靠地在多個應用程式例項之間共享,其中只有一個例項可以儲存或修改鍵的值。由於事務保證,所有這些操作都是原子的。

事務管理必須使用 JdbcMetadataStore。入站通道介面卡可以在輪詢器配置中提供對 TransactionManager 的引用。與非事務性 MetadataStore 實現不同,使用 JdbcMetadataStore 時,條目僅在事務提交後才出現在目標表中。當發生回滾時,不會向 INT_METADATA_STORE 表新增任何條目。

自 5.0.7 版本起,您可以為元資料儲存條目上的基於鎖的查詢配置 JdbcMetadataStore,並使用 RDBMS 供應商特定的 lockHint 選項。預設情況下,它是 FOR UPDATE,如果目標資料庫不支援行鎖定功能,則可以將其配置為空字串。請諮詢您的供應商,瞭解在 SELECT 表示式中鎖定行之前更新的特定和可能的提示。

© . This site is unofficial and not affiliated with VMware.