【问题标题】:mule requester module with JMS connector带有 JMS 连接器的 mule 请求器模块
【发布时间】:2020-08-05 14:34:27
【问题描述】:

我正在使用以下配置:

<dependency>
<groupId>org.mule.modules</groupId>
<artifactId>mule-module-requester</artifactId>
<version>1.6</version>
<spring:bean id="MQGatewayConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory" name="MQGatewayConnectionFactory" scope="singleton">
<spring:property name="transportType" value="1"></spring:property>
<spring:property name="connectionNameList" value="${mqm.gw.connectionNameList}"></spring:property>
<spring:property name="channel" value="${mqm.gw.channel}"></spring:property>
<spring:property name="queueManager" value="${mqm.gw.name}"></spring:property>
</spring:bean>

<jms:connector
name="WebsphereMQConnector_GW"
doc:name="WebsphereMQConnector_GW"
connectionFactory-ref="MQGatewayConnectionFactory"
username="${mqm.user}"
numberOfConsumers="4"
validateConnections="true"
maxRedelivery="-1"
cacheJmsSessions="false"
disableTemporaryReplyToDestinations="true"
persistentDelivery="true"
specification="1.1">
<reconnect-forever frequency="10000"></reconnect-forever> 
</jms:connector>


<mulerequester:request resource="jms://QUEUE.NAME?connector=WebsphereMQConnector_GW" timeout="10000" doc:name="Mule Requester"/>

这会导致以下错误:

Endpoint              : UnregistrableEndpoint{endpointUri=jms://EIS_P2_CALL_CONTEXT?connector=WebsphereMQConnector_GW, connector=JmsConnector
                    {
                      name=WebsphereMQConnector_GW
                      lifecycle=start
                      this=299786b1
                      numberOfConcurrentTransactedReceivers=4
                      createMultipleTransactedReceivers=true
                      connected=true
                      supportedProtocols=[jms]
                      serviceOverrides=<none>
                    }
                    ,  name='endpoint.jms.QUEUE.NAME', mep=ONE_WAY, properties= 
{connector=WebsphereMQConnector_GW}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, 
 timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, 
 endpointEncoding=UTF-8, disableTransportTransformer=false}

我也尝试过提供如下所述的选择器,但仍然出错

&amp;selector=JMSCorrelationID%3D'#[message.outboundProperties.MULE_CORRELATION_ID]

如果我提及连接器或不提及连接器,则会出错。

使用连接器时的错误跟踪:

Root Exception stack trace:
org.mule.transaction.IllegalTransactionStateException: Only a single resource can be bound to this type of transaction
    at org.mule.transaction.AbstractSingleResourceTransaction.bindResource(AbstractSingleResourceTransaction.java:128)
    at org.mule.transport.jms.JmsTransaction.bindResource(JmsTransaction.java:54)
    at org.mule.transport.jms.JmsConnector.getSession(JmsConnector.java:669)
    at org.mule.transport.jms.JmsMessageRequester.doRequest(JmsMessageRequester.java:81)
    at org.mule.transport.AbstractMessageRequester.request(AbstractMessageRequester.java:94)
    at org.mule.transport.AbstractConnector.request(AbstractConnector.java:2270)
    at org.mule.endpoint.DefaultInboundEndpoint.request(DefaultInboundEndpoint.java:80)
    at org.mule.client.DefaultLocalMuleClient.requestMessage(DefaultLocalMuleClient.java:215)
    at org.mule.client.DefaultLocalMuleClient.request(DefaultLocalMuleClient.java:205)
    at org.mule.module.MuleRequesterModule.request(MuleRequesterModule.java:60)

请您提出为什么这会导致错误,即使我已经完全按照 mule 文档中的定义进行了操作

【问题讨论】:

    标签: mule mule-studio mule-component


    【解决方案1】:

    UnregistrableEndpoint 似乎表明尝试创建端点时出现问题。尝试使用相同的 JMS 端点正常启动流,而不使用 Mule 请求器,以查看是否存在连接问题或其他问题。

    您没有提供选择器问题的完整示例和错误,但在字符串中使用表达式的语法似乎不正确。

    【讨论】:

    • 下面两个我都用过,都无法连接:1.resource="#['jms://QUEUE.NAME?connector=WebsphereMQConnector_GW']" 2.resource="#[' jms://QUEUE.NAME?connector=WebsphereMQConnector_GW&selector=CID%3D'+message.outboundProperties.MULE_CORRELATION_ID]" 在 jms:inbound-endpoint 中使用了相同的连接器和队列,并且连接良好
    • 请将完整的流程(以 XML 格式)添加到描述中。
    • 我设法让它工作,似乎只有当我为集群队列管理器使用 JMS 连接器时才有问题。但是当我更改 JMS 连接器以引用本地队列管理器时,它工作得非常好......
    • 在没有 Mule 请求者和集群队列的情况下是否可以工作?
    • 是的,jms:inbound-endpoint(即没有 mulerequester)适用于集群队列。但是使用 mulerquester,我只能连接到本地队列。
    猜你喜欢
    • 1970-01-01
    • 2015-10-30
    • 2015-08-29
    • 2015-05-25
    • 2013-08-22
    • 2014-08-15
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多