如何使用 spring-integration-smb 进行交易
How to work transactionally with spring-integration-smb
我是 Spring 集成项目的新手。我正在尝试通过 spring-integration-smb
项目以事务方式处理远程文件(来自 SMB2 共享)。在这个 blog post 的帮助下,我能够在 local 文件系统上以事务方式处理文件(使用 Spring 的 PseudoTransactionManager
)。现在我尝试调整示例以处理远程共享 (SMB) 上的文件,但我还没有找到处理事务的解决方案。你知道我如何实现这样的事务处理吗?
您仍然可以通过 PseudoTransactionManager
和 TransactionSynchronizationFactory
组合使用类似的方法来跟踪您的交易状态。
对于 rollback-kinda 操作,您可以使用 SmbRemoteFileTemplate
调用其 rename()
、remove()
等操作。失败的消息包含 headers 中的所有必要信息:
messageBuilder.setHeader(FileHeaders.REMOTE_HOST_PORT, uri.getHost() + ':' + uri.getPort())
.setHeader(FileHeaders.REMOTE_DIRECTORY, uri.getPath())
.setHeader(FileHeaders.REMOTE_FILE, uri.getFragment());
我是 Spring 集成项目的新手。我正在尝试通过 spring-integration-smb
项目以事务方式处理远程文件(来自 SMB2 共享)。在这个 blog post 的帮助下,我能够在 local 文件系统上以事务方式处理文件(使用 Spring 的 PseudoTransactionManager
)。现在我尝试调整示例以处理远程共享 (SMB) 上的文件,但我还没有找到处理事务的解决方案。你知道我如何实现这样的事务处理吗?
您仍然可以通过 PseudoTransactionManager
和 TransactionSynchronizationFactory
组合使用类似的方法来跟踪您的交易状态。
对于 rollback-kinda 操作,您可以使用 SmbRemoteFileTemplate
调用其 rename()
、remove()
等操作。失败的消息包含 headers 中的所有必要信息:
messageBuilder.setHeader(FileHeaders.REMOTE_HOST_PORT, uri.getHost() + ':' + uri.getPort())
.setHeader(FileHeaders.REMOTE_DIRECTORY, uri.getPath())
.setHeader(FileHeaders.REMOTE_FILE, uri.getFragment());