JMSOutput 节点

本主题包含以下部分:

目的

使用 JMSOutput 节点可以将消息发送到 JMS 目标。JMSOutput 节点充当 JMS 消息的生产者,并且可以发布在 Java 消息服务规范 V1.1 中定义的所有六种类型的消息。消息通过使用方法调用发布,这在 JMS 规范中有所描述。

JMSOutput 节点在工作台中由以下图标表示:

JMSOutput 节点图标

在消息流中使用 JMSOuput 节点

JMS 节点样本包含在其中使用 JMSOutput 节点的消息流。请参阅此样本,获取如何使用 JMSOutput 节点的示例。

消息流处理接收自 JMS 提供程序连接的消息,且必须始终以 JMSInput 节点开始。如果消息流中包含 JMSOutput 节点,则不一定要包含 JMSInput 节点。然而,如果没有包含 JMSInput 节点,则必须包含 MQJMSTransform 节点将消息转换为 JMSOutput 节点预期的格式。

如果您正在传播 JMS 消息并且正在创建要作为子流使用的消息流,则为了创建该子流的 out 终端,必须使用 JMSOutput 节点的实例作为最后一个节点。

使 JMS 提供程序客户机可由 JMS 节点使用

对于分布式平台,将 JMS 提供程序客户机的 Java .jar 文件和任何本机库复制到代理共享类目录下。 例如,在 Windows 上为 C:\Documents and Settings\All Users\Application Data\IBM\MQSI\shared-classes。这可确保 JMS 节点的 Java 类路径设置正确。

对于 z/OS,则没有共享类目录。因此,您必须在代理 PDS(分区数据集)的 BIPPROF 成员中指定类路径的每个 JMS 提供程序 Java .jar 文件。 然后使用任何本机库更新 LIBPATH,并提交 BIPGEN JCL 作业以更新代理 ENVFILE。

配置 JMSOutput 节点

将 JMSOutput 节点的实例放入消息流中后,可以对其进行配置。右键单击编辑器视图中的节点,然后单击属性。此时将在属性对话框中显示节点的基本属性。

所有不含已定义缺省值的必要属性在该属性对话框上都用星号进行标记。

按如下所示,配置 JMSOutput 节点:

  1. 在属性对话框导航器中选择基本并完成以下属性:
    • 初始上下文工厂输入某个值。 JMS 应用程序使用初始上下文获取和查找 JMS 提供程序的 JNDI 管理的对象。缺省值为

      com.sun.jndi.fscontext.RefFSContextFactory,它定义了 WebSphere MQ JMS 提供程序的基于文件的初始上下文工厂。

      要标识 JMS 提供程序的初始上下文工厂名称,请参阅 JMS 提供程序文档。

    • 位置 JNDI 绑定输入某个值。该值指定绑定文件的文件系统路径或 LDAP 位置。绑定文件包含 JMSInput 节点使用的 JNDI 所管理对象的定义。

      在您对位置 JNDI 绑定输入某个值时,确保它符合以下指示信息:

      • 在部署包含 JMSInput 节点的消息流之前构造绑定文件。
      • 请勿包含该字段中绑定文件的文件名。
      • 如果您已指定了需要认证的 LDAP 位置,则必须分别配置 LDAP 主体(用户标识)和 LDAP 凭证(密码)。这些值是在代理级别上配置的。有关配置这些值的信息,请参阅 mqsicreatebrokermqsichangebroker 命令。
      • 字符串值应包括以下某个前导关键字:file:/iiop:/ldap:/

      有关 JNDI 所管理对象的绑定文件的信息,请参阅 JMS 提供程序随附提供的文档。

    • 输入连接工厂名称。 JMSInput 节点使用连接工厂名称以创建到 JMS 提供程序的连接。该名称必须已存在于绑定文件中。
  2. 如果要使用 JMSOuput 节点来预订主题,则在属性对话框导航器中选择发布/预订
    • 输入发布程序主题的名称。
      • 如果配置此属性,则该节点只在发布/预订消息域中操作。
      • 此属性与点到点属性部分中的目标队列互斥。
      • 发布程序主题名称必须符合该节点正在使用的 JMS 提供程序的标准。
  3. 如果要使用 JMSOutput 节点接收点到点的消息,则在属性对话框导航器中选择点到点
    • 为在绑定文件中列出的 JMS 队列名称输入目标队列名称。
  4. 在属性对话框导航器中选择请求并完成以下属性:
    • 目标方式下拉列表中选择一个选项。
      • 缺省值为目标名称。如果选择此项,则将消息作为数据报请求对待,并将其目标定为发布主题目标队列
      • 如果要将消息作为应答对待,则选择应答目标名称。将提供 JMS 提供程序,带有来自消息树 JMSTransport_Header_values 部分的 JMSReplyTo 值。
    • 应答目标输入一个值。可以输入一个 JMS 目标,该目标可以是预订队列或目标主题。应答目标是接收应用程序应该向其发送应答消息的 JMS 目标的名称。对于要返回至该 JMS 目标的应答消息,JMS 目标名称必须为接收客户机使用的 JMS 提供程序的域所知。

      缺省值为空白,在这种情况下,可以将 JMS 输出消息作为数据报对待。如果该字段为空白,JMSOutput 节点将不会预期来自接收 JMS 客户机的应答。

  5. 在属性对话框导航器中选择高级
    • 如果需要新建相关标识,则选择该复选框。
    • 要定义消息处理方式的事务特征,请从事务方式下拉列表中进行选择。您可以选择以下某个选项:
      • 如果要将出局消息作为非持久消息对待,选择。在这种情况下,将使用以 Session.AUTO_ACKNOWLEDGE 标志创建的非事务 JMS 会话发送消息。
      • 如果收到消息的 Input 节点应该协调 JMSOutput 节点已发送 JMS 消息的落实或回滚,以及任何其他资源(如 DB2 或执行消息流内工作的 WebSphere MQ),则选择本地。在这种情况下,节点将使用已处理的 JMS 会话。
      • 如果 JMSOutput 节点应该参与将由代理外部同步点协调程序管理的全局消息流事务,则选择全局。同步点协调程序是分布式平台上代理的队列管理器和 z/OS 上的 RRS(资源恢复服务)。这种情况下,任何由节点接收的消息都将使用 XA JMS 会话进行全局协调。
    • 您可以通过使用传递方式属性设置出局 JMS 消息的持久性。从下拉列表选择选项。您可从下列各项中选择:
      • 非持久对 JMS 提供程序指示,应该将消息作为非持久的对待。
      • 持久对 JMS 提供程序将消息标记为持久的,应该保留消息,直到成功传递给接收 JMS 客户机应用程序。
    • 消息到期输入一个值,请求 JMS 提供程序将输出 JMS 消息保留指定的时间。

      以毫秒为单位输入一个值,指定 JMS 提供程序将对消息保留多长时间。使用缺省值 0 表示消息不应该到期。

    • 要对消息指定相对重要性,从消息优先级下拉列表选择一个选项。该值可用于通过接收 JMS 客户机应用程序或 JMSOutput 节点进行消息选择。

      输入一个值,其中消息优先级的有效值为从 0(最低)到 9(最高)。缺省值为 4,表示中等优先级。04 范围内的优先级与常规传递相关。59 范围内的优先级与加速等级传递相关。

  6. 要输入简短描述和/或详细描述,在“属性”对话框导航器中选择描述
  7. 单击应用,在不关闭属性对话框的情况下对 JMSOutput 节点进行更改。单击确定应用更改,并关闭属性对话框。

    单击取消关闭对话框,并废弃对属性所作的所有更改。

连接终端

将 JMSOutput 节点的 in 终端连接到出站消息经过的节点。

如果要进一步处理消息、处理错误或将消息发送到其他目标,请将此节点的 out 终端连接到消息流中的另一个节点。

对协调事务进行配置

在消息流中包含 JMSOutput 节点后,您为事务方式设置的值将定义是否在同步点下接收消息。

  • 如果您将其设置为全局,则在外部同步点协调下接收消息,即 WebSphere MQ 工作单元中。随后在消息流的同一实例中由输出节点发送的任何消息都放在同步点 下,除非输出节点已经明确地覆盖了它。
  • 如果将它设置为 local,则在 JMSOutput 节点的本地同步点控制下发送消息。随后在流中由输出节点发送的任何消息都不会放在本地同步点下,除非个别输出节点已经指定必须将消息放在本地同步点下。
  • 如果将它设置为 none,则不在同步点下发送消息。随后在流中由输出节点发送的任何消息都不会放在同步点下,除非个别输出节点已经指定必须将消息放在同步点下。

JMS 提供程序可以提供事务支持所需的其他 JAR 文件。请参阅 JMS 提供程序文档。例如,在分布式(非 z/OS)平台上,WebSphere MQ JMS 提供程序提供额外的 jar 文件 com.ibm,mqetclient.jar。 必须也将此 JAR 添加到代理 shared_classes 目录。请参阅本主题中的使 JMS 提供程序客户机可由 JMS 节点使用

要在外部同步点下接收消息时,需要使用其他配置步骤。 这些步骤仅在首次将 JMSOutput 或 JMSInput 部署到特定 JMS 提供程序的代理时应用。
  • 在分布式平台上,代理的外部同步点协调程序是 WebSphere MQ。在部署事务协调设置为全局 的消息流之前,修改队列管理器 .ini 文件以包含每个参与全局协调事务的 JMS 提供程序资源管理器的额外定义。
    • 在 Windows 上,值是在“WebSphere MQ 服务资源”属性选项卡下配置的。请参阅《WebSphere MQ 系统管理指南》,获取更多信息。
      SwitchFile 属性设置为以下值:
      <Broker Installation Path>/bin/ JMSSwitch.dll
      XAOpenString=<Initial Context >,<location JNDI>, <Optional>
      ThreadOfControl=THREAD
    • 在分布式平台(不是 Windows)上,将节添加至每个 JMS 提供程序的队列管理器“ini”文件中。请参阅《WebSphere MQ 系统管理指南》,获取更多信息。
      例如,
      XAResourceManager:
      Name=<Jms_Provider_Name>
      SwitchFile=/<Broker Installation Path>/bin/ JMSSwitch.so
      XAOpenString=<Initial Context >,<location JNDI>, <Optional>
      ThreadOfControl=THREAD
      其中

      name 是安装程序定义的名称,用于标识 JMS 提供程序资源管理器。

      SwitchFile 是指向 JMSSwitch 库的文件系统路径,该库位于代理的 bin 目录下。

      XAOpenString 的值如下:
      • Initial Context 是在 JMSInput 节点基本属性初始上下文工中设置的值。
      • location JNDI 是在 JMSInput 节点基本属性 JNDI 位置中设置的值。 该值应包括前导关键字 file:/iiop:/ldap:/
      以下参数是可选的:
      • LDAP 主体与使用 mqsicreatebrokermqsichangebroker 命令为代理设置的值相匹配。
      • LDAP 凭证与使用 mqsicreatebrokermqsichangebroker 命令为代理设置的值相匹配。
      • 恢复连接工厂名称是定义于绑定文件中由 JNDI 管理的连接工厂。如果未指定值,则必须将 recoverXAQCF 的缺省值添加至绑定文件。在这两种情况下的任何一种中,都应该将恢复连接工厂定义为与初始上下文工厂关联的 JMS 提供程序的 XA 队列连接工厂。

      可选参数以逗号分隔且位置固定。因此,任何缺少的参数必须以逗号表示。

      1. 更新代理队列管理器的 Java CLASSPATH 环境变量以包含对 xarecovery.jar 的引用。例如,
        <Broker Installation Path>/classes/xarecovery.jar
      2. 更新代理队列管理器的 Java PATH 环境变量以指向 Switch 文件所在的 bin 目录。 例如,
        <Broker Installation Path>/bin

      WebSphere MQ V5.3、CSD12 和 WebSphere MQ V6 修订包 1 之前,XA 无法同时对代理和提供程序使用相同的队列管理器。

    • 在 z/OS 上,外部同步点管理器为资源恢复服务(RRS)。WebSphere MQ JMS 是 z/OS 上支持的唯一 JMS 提供程序。 绑定选项是 WebSphere MQ JMS 在 z/OS 上支持的唯一传输选项。

      JMS 提供程序的同步点控制采用代理队列管理器的 RRS 同步点协调进行管理。您无需修改 .ini 文件。

终端和属性

下表中描述了 JMSOutput 节点的终端。

终端 描述
Failure 如果发生错误,消息路由到的输出终端。即使设置了验证属性,也不验证传播到此终端的消息。
Out 如果从 WebSphere MQ 队列成功检索到消息,则这就是消息路由到的输出终端。
Catch 如果在下游抛出异常并由此节点捕获,则这是消息路由到的输出终端。

下表描述该节点的属性;标题为 M 的列表示属性是否必要(如果在未定义缺省值时必须输入值,则属性对话框上以星号标注),标题为 C 的列表示属性是否可配置(将消息流添加到 BAR 文件以部署它时可以更改该值)。

下表中描述了 JMSOutput 节点的基本属性。

属性 M C 缺省值 描述
初始上下文工厂   com.sun.jndi.fscontext.RefFSContextFactory 这是 JNDI 名称空间的起点。JMS 应用程序使用初始上下文获取并查找连接工厂以及 JMS 提供程序的队列或主题对象。

缺省值为 WebSphere MQ Java 用作 JMS 提供程序时所用的值。

位置 JNDI 绑定     绑定文件的系统路径或 LDAP 位置。
连接工厂名称     JMSOutput 节点用来创建到 JMS 提过程序连接的连接工厂名称。

下表中描述了 JMSOutput 节点的高级属性。

属性 M C 缺省值 描述
新建相关标识     如果需要新建相关标识,则选择该属性。
事务方式 此属性用来确定是否在同步点下接收入局消息。有效值为本地全局
传递方式   非持久 将根据消息传递方式过滤消息的消息选择器。
消息到期   0 此属性值用来请求 JMS 提供程序将输出 JMS 消息保留指定的时间。

这些值以毫秒为单位,缺省值 0 用来表示消息不应该到期。

消息优先级   4 此属性值指定消息的相对重要性。该值可用于通过接收 JMS 客户机应用程序或 JMSOutput 节点进行消息选择。

下表中描述了 JMSOutput 节点的描述属性。

属性 M C 缺省值 描述
简短描述   节点的简短描述。
详细描述   描述消息流中节点用途的文本。
声明 | 商标 | 下载 | | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后更新:2006/05/19
ac24830_