【问题标题】:In Mule 4 using JMS Connector how to remove the RFH Header在 Mule 4 中使用 JMS 连接器如何删除 RFH 标头
【发布时间】:2020-05-04 21:06:14
【问题描述】:

我正在使用 JMS 连接器连接到 IBM MQ。如果我使用 IBM MQ 连接器,我可以选择 (targetClient="NO_JMS_COMPLIANT") 从消息中禁用 RFH 标头。如何使用 JMS 连接器实现相同的目标。我的 JMS 配置如下所示

<jms:config name="JMS_Config" doc:name="JMS Config" doc:id="b675becf-06f3-4847-bb95-4f468d5353ea" >
    <jms:generic-connection specification="JMS_2_0" connectionFactory="WMQ_ConnectionFactory" />
</jms:config>

连接工厂如下所示:

<bean id="WMQ_ConnectionFactory" class="com.ibm.mq.jms.MQConnectionFactory" name="WMQ_ConnectionFactory">
    <property name="transportType" value="1" />
    <property name="hostName" value="MQ-SLQ01"/>
    <property name="port" value="1414"/>
    <property name="queueManager" value="SLQ01"/>
    <property name="channel" value="*******"/>
</bean>

JMS 连接器配置如下所示:

<jms:publish-consume doc:name="Publish consume" doc:id="b1d40cc6-deb0-42f0-aa50-4b230d843794" config-ref="JMS_Config" destination="P2.REQUEST" sendCorrelationId="ALWAYS">
    <jms:message >
        <jms:reply-to destination="P2.REPLY" />
    </jms:message>
</jms:publish-consume>

我尝试使用P2.REQUEST?targetClient=1 添加请求队列名称。我看不到任何变化。

【问题讨论】:

  • 为什么不直接使用 IBM MQ 连接器?它就是为此而设计的。
  • IBM MQ 连接器(发布-使用)版本 1.5.3(最新版本不工作)。票证由 Mulesoft 支持。
  • 这与本问题中所述的问题不同。
  • 我已经尝试使用 IBM mq 连接器,正如您所提到的,它是为此目的而设计的。 IBM MQ 连接器未按预期工作。我最终尝试了其他可能的方式(这就是我最终使用 JMS 连接器的地方。我发现 jms 连接器更好,唯一的问题是使用 RFH Header)。我现在对这两种情况都感到困惑。如果您能提供帮助,那就太好了。
  • JMS 连接器将不知道如何设置 IBM MQ 特定功能。我认为这是不可能的。

标签: jms mule ibm-mq mule-component mule4


【解决方案1】:

我怀疑 JMS 连接器是否允许选择特定于代理 (IBM MQ) 的非 JMS 兼容模式。它是一个通用连接器,不提供特定于代理的功能。您应该使用已经提供该特定功能的 IBM MQ 连接器。

【讨论】:

    【解决方案2】:

    您可以采取的替代措施是使用队列中的设置禁用 RFH2 标头。

    ALTER QLOCAL(P2.REQUEST) PROPCTL(NONE)
    

    这将在将消息传递给任何不提供消息句柄的应用程序之前从消息中剥离所有属性(RFH2 标头)。

    【讨论】:

    • 感谢@Morag Hughson。很高兴知道。我们在组织中有一些限制
    猜你喜欢
    • 2017-03-09
    • 2015-10-30
    • 2013-08-22
    • 2021-12-02
    • 2016-11-07
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    相关资源
    最近更新 更多