此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.4.0! |
JDBC 元数据存储
版本 5.0 引入了 JDBC(请参阅元数据存储)实现。
您可以使用 在应用程序重启后维护元数据状态。
此实现可与适配器一起使用,例如:MetadataStore
JdbcMetadataStore
MetadataStore
要将这些适配器配置为使用 ,请使用 Bean 名称 声明 Spring Bean。
Feed 入站通道适配器和 Feed 入站通道适配器都会自动选取并使用 declared ,如下例所示:JdbcMetadataStore
metadataStore
JdbcMetadataStore
@Bean
public MetadataStore metadataStore(DataSource dataSource) {
return new JdbcMetadataStore(dataSource);
}
该软件包包含多个 RDMBS 供应商的数据库架构脚本。
例如,下面的清单显示了元数据表的 H2 DDL:org.springframework.integration.jdbc
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
事务管理必须使用 .
入站通道适配器可以在 poller 配置中提供对 的引用。
与非事务性实现不同,使用 时,该条目仅在事务提交后才会出现在目标表中。
发生回滚时,不会向表中添加任何条目。JdbcMetadataStore
TransactionManager
MetadataStore
JdbcMetadataStore
INT_METADATA_STORE
从版本 5.0.7 开始,您可以使用 RDBMS 供应商特定的选项配置元数据存储条目的基于锁的查询。
默认情况下,如果目标数据库不支持行锁定功能,则它是并且可以配置空字符串。
请咨询您的供应商,了解表达式中有关在更新之前锁定行的特定和可能的提示。JdbcMetadataStore
lockHint
FOR UPDATE
SELECT