IBM MQ classes for Java 中使用一系列通道发送或接收出口

IBM® MQ classes for Java 应用程序可以使用连续运行的一系列通道发送或接收出口。

为使用发送出口序列,应用程序可以创建包含发送出口的列表或字符串。 如果使用了列表,那么列表中的每个元素都可以是以下任意项:
  • 实现 WMQSendExit 接口的用户定义类的实例
  • 实现 MQSendExit 接口的用户定义类的实例 (对于以 Java 编写的发送出口)
  • MQExternalSendExit类的实例(用于非Java编写的发送出口)
  • MQSendExitChain 类实例
  • 字符串类实例
列表无法包含另一个列表。

应用程序可以通过类似的方式使用接收出口序列。

如果使用字符串,那么它必须由一个或多个以逗号分隔的出口定义组成,每个出口定义可以是 Java 类的名称,也可以是格式为 library(function)的 C 程序。

应用程序之后会向 MQEnvironment.channelSendExit 字段分配列表或字符串对象,然后创建 MQQueueManager 对象。

传递给出口的信息上下文仅存在于出口域中。 例如,如果链接了 Java 出口和 C 出口,那么 Java 出口的存在对 C 出口没有影响。

使用出口链类

IBM WebSphere® MQ 7.0之前的版本中,提供了两个类以允许出口序列:
  • MQSendExitChain,实现 MQSendExit 接口
  • MQReceiveExitChain,实现 MQReceiveExit 接口
这些类依然可供使用,但将首选采用新方法。 使用 IBM MQ Classes for Java 意味着应用程序仍依赖于 com.ibm.mq.jar。如果使用了 com.ibm.mq.exits 包中的新接口集,那么不依赖于 com.ibm.mq.jar
为使用发送出口序列,应用程序创建了对象列表,其中每个对象都是以下项之一:
  • 实现 MQSendExit 接口的用户定义类的实例 (对于以 Java 编写的发送出口)
  • MQExternalSendExit类的实例(用于非Java编写的发送出口)
  • MQSendExitChain 类实例
应用程序通过将此对象列表作为构造函数上的参数传递,创建了 MQSendExitChain 对象。 应用程序之后会向 MQEnvironment.sendExit 字段分配 MQSendExitChain 对象,然后创建 MQQueueManager 对象。