仅发送编程模型

此编程模型允许您运行 IMS™ 非响应方式事务。

要在 IMS TM 中运行非响应方式事务,Java™ 应用程序将执行 SYNC_SEND 交互。对于交互的 execute 方法所使用的 IMSInteractionSpec 对象,应用程序为其 interactionVerb 属性提供的值是 SYNC_SEND,为其 commitMode 属性指定的值是 0。

如果 Java 客户机应用程序发出一个 SYNC_SEND 交互,IMS TM 资源适配器就会通过 IMS Connect 向 IMS 发送请求,但是不会期望来自 IMS 的响应。由于 IMS TM 资源适配器与 IMS 之间执行的是“仅发送”交互,因此通常将 SYNC_SEND 交互用于无响应方式事务。

要使用 SYNC_SEND 交互来运行事务,对于 execute 方法所使用的 IMSInteractionSpec 对象,应用程序必须为其 interactionVerb 属性提供值 SYNC_SEND,为其 commitMode 属性提供值为 0。根据所使用的持久套接字类型(可共享或专用)和运行的 IMS 事务类型的不同,SYNC_SEND 交互处理会有所不同。

注: IMSInteractionSpec 属性 purgeAsycOutput、reRoute 和 reRouteName 不适用于 SYNC_SEND 交互,它们将被 IMS Connector for Java 忽略。

可共享持久套接字处理模型

下列方案描述了不同类型的事务的可共享持久套接字连接上的 SYNC_SEND 交互。
  • 无响应方式事务

    如果 IMS 的一个事务定义为无响应方式,则与该事务相关联的 IMS 应用程序通常不会将输出消息插入 I/O PC;因此,不会创建输出消息,也没有任何输出消息在 TPIPE 上排队。

  • 响应方式事务

    如果 IMS 应用程序与对 IMS 定义的事务相关联,并且该事务被定义为响应方式事务,则该应用程序通常会将输出消息插入至 I/O PCB。因为 IMS TM 资源适配器并不期望来自 SYNC_SEND 交互的响应,所以,如果插入了输出消息,就会在名称为已生成的 clientID 的 TPIPE 上对输出消息排队。但是,如果在执行 SYNC_SEND 交互之后执行 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 或 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 交互,并且是在同一个应用程序和同一个连接上执行这些交互的,则可以使用后面这两种交互来检索响应。

  • 无响应方式事务或响应方式事务,这些事务会调用将消息插入备用 PCB 的 IMS 应用程序
    可以通过在专用持久套接字连接上执行交互来检索插入到备用 PCB 中的消息。要插入此消息,请完成下列步骤:
    1. 确保将交互所使用的连接工厂的 CM0Dedicated 属性值配置为 TRUE。
    2. 为交互提供下列值:
      • IMSInteractionSpec 属性 interactionVerb=SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 或 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
      • IMSInteractionSpec 属性 commitMode=0
      • IMSConnectionSpec 属性 clientID= 备用 PCB 的名称

专用持久套接字处理模型

下列方案描述了不同类型的事务的专用持久套接字连接上的 SYNC_SEND 交互。SYNC_SEND 交互使用落实方式 0,专用持久套接字连接只能用于落实方式 0 交互。
  • 无响应方式事务

    如果 IMS 的一个事务定义为响应方式,则与该事务相关联的 IMS 应用程序通常不会将输出消息插入 I/O PCB,因此,不会创建输出消息,也没有任何输出消息在 TPIPE 上排队。

  • 响应方式事务

    如果 IMS 的一个事务定义为无响应方式,则与该事务相关联的 IMS 应用程序通常会将输出消息插入 I/O PCB 中。因为 IMS TM 资源适配器并不期望来自 SYNC_SEND 交互的响应,所以,如果插入了输出消息,就会在 TPIPE 上对输出消息排队,该 TPIPE 具有为该交互的 clientID 提供的名称。可以通过发出 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 或 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT 交互来检索排队至这种类型的 TPIPE 的消息。TPIPE 名称就是为 SYNC_SEND 交互指定的 clientID。对于使用专用持久套接字连接的交互必须提供 clientID。

  • 无响应方式事务或响应方式事务,这些事务会调用将消息插入备用 PCB 的 IMS 应用程序
    可以通过在专用持久套接字连接上执行交互来检索插入到备用 PCB 中的消息。可以通过执行下列步骤来完成此任务:
    1. 确保将交互所使用的连接工厂的 CM0Dedicated 属性值配置为 TRUE。
    2. 为交互提供下列值:
      • IMSInteractionSpec 属性 interactionVerb=SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_NOWAIT 或 SYNC_RECEIVE_ASYNCOUTPUT_SINGLE_WAIT
      • IMSInteractionSpec 属性 commitMode=0
      • IMSConnectionSpec 属性 clientID= 备用 PCB 的名称

反馈