V5.0 引入了 JDBC(请参阅元数据存储)实现。 您可以使用 在应用程序重新启动时维护元数据状态。 此实现可用于适配器,如下所示:MetadataStoreJdbcMetadataStoreMetadataStoreSpring中文文档

要将这些适配器配置为使用 ,请使用 Bean 名称 声明 Spring Bean。 Feed 入站通道适配器和 Feed 入站通道适配器都会自动选取并使用声明的 ,如以下示例所示:JdbcMetadataStoremetadataStoreJdbcMetadataStoreSpring中文文档

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

该软件包具有多个 RDMBS 供应商的数据库架构脚本。 例如,以下列表显示了元数据表的 H2 DDL:org.springframework.integration.jdbcSpring中文文档

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_JdbcMetadataStoreSpring中文文档

实现 ,使其在多个应用程序实例之间可靠地共享,其中只有一个实例可以存储或修改键的值。 由于交易保证,所有这些操作都是原子的。JdbcMetadataStoreConcurrentMetadataStoreSpring中文文档

事务管理必须使用 . 入站通道适配器可以提供对轮询器配置中的引用。 与非事务性实现不同,具有 ,该条目仅在事务提交后才会出现在目标表中。 发生回滚时,不会向表中添加任何条目。JdbcMetadataStoreTransactionManagerMetadataStoreJdbcMetadataStoreINT_METADATA_STORESpring中文文档

从版本 5.0.7 开始,您可以使用特定于 RDBMS 供应商的选项配置,以便对元数据存储条目进行基于锁的查询。 默认情况下,如果目标数据库不支持行锁定功能,则可以使用空字符串进行配置。 请咨询您的供应商,了解表达式中有关在更新之前锁定行的特定提示和可能的提示。JdbcMetadataStorelockHintFOR UPDATESELECTSpring中文文档