如何使用 spring-integration-smb 进行交易

How to work transactionally with spring-integration-smb

我是 Spring 集成项目的新手。我正在尝试通过 spring-integration-smb 项目以事务方式处理远程文件(来自 SMB2 共享)。在这个 blog post 的帮助下,我能够在 local 文件系统上以事务方式处理文件(使用 Spring 的 PseudoTransactionManager)。现在我尝试调整示例以处理远程共享 (SMB) 上的文件,但我还没有找到处理事务的解决方案。你知道我如何实现这样的事务处理吗?

您仍然可以通过 PseudoTransactionManagerTransactionSynchronizationFactory 组合使用类似的方法来跟踪您的交易状态。

对于 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());