InterAct 适配器存储和转发
在 Store 和 Forward (SnF) 模式下,消息在发送时传递到队列,并由目标从队列中检索。 使用 SnF 时,响应来自 SWIFTNet SnF 本身,不包含来自响应方的任何反馈。
消息和文件可以路由到队列中,其灵活性与不使用 SnF 时路由到服务器进程的消息相同。 此定义在 MRR (SWIFTNet) 内部。 接收方决定在发送方发送消息或文件后将放入哪个队列。 通过在 RequestControl) (将消息标记为 SnF 传递模式,即可将消息或文件放入队列中。
从队列中检索消息可以采用两种不同的模式,具体取决于应用程序设计器所做的选择。 这些模式称为推送和拉取。
使用推送模式时,传送消息的计划驻留在 SWIFTNet SnF 中。 然后,消息将从 SWIFTNet SnF“推送”,并由 SWIFTNet Link 上的应用程序服务器接收。 服务器应用程序必须确保消息安全存储,然后才能使用确认进行响应。 此确认向 SWIFTNet SnF 指示消息的接收方式。 确认不包含任何其他“业务”逻辑。
SWIFTNet 中的队列
队列包含发送方发送给指定接收方的消息和文件。 队列还包含 SWIFTNet SnF 生成的传递通知。
队列由接收方的组织定义和配置。 实际创建队列是由 SWIFT 根据用户的请求完成的。 发送方不知道最终将放置消息的队列。 这完全由接收方控制。
队列窗口大小属性控制 SWIFTNet SnF 在没有确认的情况下从队列中检索的最大消息数。 在释放窗口中的槽之前,接收方仍必须确认消息。
传送到队列中
对于使用存储与转发的服务,接收方决定将使用哪个队列来存储以存储和转发模式发送的消息。
发送通知将放入发送方机构的队列中,以通知发送方已发送消息的传递状态。 这可通过发送适配器属性进行配置。
会话
获取队列时,将启动会话。 对于 SWIFTNet SnF 传递的每条消息,将返回 Sw:SnFSessionId。 Sw:SnFSessionId 包含队列名称、会话模式:push 和会话编号。 每个会话的会话编号都会递增。 示例如下:
<Sw:SnFSessionId>bankwxyz_applicq1:p:000458</Sw:SnFSessionId>
“p”表示推送会话。 授权者还可以将会话视为队列的预留。 后续消息必须由同一授权者确认。
将消息发送到存储和转发时,会话不适用。
推送会话 SnF
SnF 序列假定以下内容:
客户端进程已完成其工作,现在可以终止。 为此,必须通过发出 SwSec:DestroyContextRequest 来清理开放的安全上下文。 在 Sw:TermRequest 之后,进程可能会退出 () 。
另一个客户端已启动。 初始化步骤与第一个客户端的初始化步骤相同。 队列的释放方式是使用 Sw:ReleaseSnFQueueRequest 作为输入基元执行 SwCall。
SWIFTNet 在成功处理队列释放后立即停止从队列传递消息。
服务器一次处理一个请求。 SWIFTNet SnF 从队列中传递多个请求。 这些缓存在网络和 SWIFTNet 链接中缓冲,直到服务器响应或发生超时。
某些请求可能已在传递,但在释放队列之前尚未确认。 在队列释放之前,SWIFTNet SnF 不会再处理这些消息的确认。 这些消息将在后续会话中重新传递。
在客户端发出该队列的释放后,服务器应用程序是否仍对从队列传递的请求进行肯定确认响应,这由本地实现决定,但通常情况并非如此。
另请参阅
InterAct 适配器体系结构
InterAct 适配器组件
Business Exchange 的 InterAct 适配器消息
InterAct 适配器客户端应用程序
InterAct 适配器服务器应用程序
InterAct 适配器安全体系结构
InterAct 适配器端到端可靠传递
InterAct 适配器状态监视
InterAct 适配器不可否认性