SWIFT 接收适配器存储和转发

接收适配器从 SWIFT 存储接收消息,并转发 (SnF) 队列。 若要从队列接收消息,适配器必须打开与 SnF 队列的会话。 若要打开队列,它必须有一个专用的客户端进程来建立与队列的会话。 在设计中,此过程作为 COM 和进程外组件实现。

推送会话存储和转发序列

以下列表描述了存储和转发序列。

  1. 启动处理消息的服务器应用程序。

  2. 服务器进程在第一个 SwCallback 期间打开所需的安全上下文,并将 Sw:HandleInitRequest 作为输入基元。

  3. 服务器响应 Sw:HandleInitRequest,同时将 Sw:CryptoMode 和 Sw:FACryptoMode 设置为“高级”。

    服务器现在已准备好开始处理传入请求。

  4. 若要开始传递队列中的消息,客户端进程会启动推送会话。 根据适配器配置 (推送模式) ,接收适配器会生成名为 SnFQueueManager.exe 的客户端进程,以在推送模式下获取队列。

  5. SwCall () 以 Sw:ExchangeSnFRequest) 中的 Sw:AcquireSnFRequest (作为输入基元运行。 如果 SwSec:授权Context 具有所需的 RBAC 角色) ,则此请求使用 (指示的队列启动会话。

  6. 在 Sw:AcquireStatus 中使用“Accepted”响应后,SWIFTNet SnF 立即开始按照获取中指定的方式向服务器发送消息。 如果接收适配器尚未启动,则消息将发生异常。 (因此,必须) 启动接收适配器。

  7. SWIFTNet SnF 开始推送大量消息, (最大窗口大小) 。

  8. 对于确认的每条消息,如果推送任何) , (一条新消息。

  9. 客户端进程 (SnFQueueManager.exe) 已完成其工作,现在可以终止。 该过程会发出 SwSec:DestroyContextRequest,以清理开放的安全上下文。 在 Sw:TermRequest 之后,进程将退出。

消息相关性

RequestRef 字段由接收适配器保留并替换回响应消息中。 这可确保传入消息与响应消息之间的端到端关联

重复处理

如果收到 FileAct 请求,并且适配器实例收到带有“可能重复指示器”节点的消息,则必须检查以查看引用的传输是否已成功完成,或者是否失败,并采取相应的操作。 如果文件传输已发生,则适配器将传输状态更新为“重复”,否则会将其更新为“已接受”。

致谢

如果发送方请求 FileAct 请求的确认,适配器会检查文件传输完成事件,并在验证文件摘要值后生成确认。 适配器将确认消息发送到 BizTalk,以便发送适配器选取它并将其发送给发送方。

另请参阅

SWIFT 接收适配器体系结构
SWIFT 接收适配器 URI
SWIFT 接收适配器初始化
SWIFT 接收适配器安全上下文
SWIFT 接收适配器同步和延迟模式