Поток Mule MSMQ выдает ошибку отказа в соединении в Mule Studio

Я пытаюсь запустить пример из блога Mule для MSMQ. Когда я настраиваю MSMQ как глобальный компонент, «Тестовое соединение» сообщает «Успешно», это означает, что MSMQ настроен. Хорошо и хорошо до сих пор .. Теперь используем следующий поток для проверки отправки сообщения в очередь:

<msmq:config name="MSMQ" serviceAddress="machinename/localhost:9000" accessToken="XZodtPym+v6NeZs+Sr4+GK9EGdA=" rootQueueName=".\private$\msmq-demo" doc:name="MSMQ"   >
    <msmq:connection-pooling-profile initialisationPolicy="INITIALISE_ONE" exhaustedAction="WHEN_EXHAUSTED_GROW"/>
</msmq:config>
<flow name="testingFlow1" doc:name="testingFlow1">
    <http:inbound-endpoint exchange-pattern="one-way" host="localhost" port="8091" doc:name="HTTP"/>
    <set-payload value="#[header:INBOUND:http.relative.path]" doc:name="Set Payload"/>
    <logger message=" Sending message: #[payload]" level="INFO" doc:name="Logger"/>
    <msmq:send config-ref="MSMQ" doc:name="MSMQ"/>
</flow>

Когда поток попадает в MSMQ в консоли, я вижу эту ошибку:

    INFO  2014-08-07 18:00:41,299 [[testing].testingFlow1.stage1.02] org.mule.api.processor.LoggerMessageProcessor:  Sending message: test
    ERROR 2014-08-07 18:00:42,888 [[testing].testingFlow1.stage1.02] org.mule.retry.notifiers.ConnectNotifier: Failed to connect/reconnect: Work Descriptor. Root Exception was: Connection refused: connect. Type: class java.net.ConnectException
    ERROR 2014-08-07 18:00:42,894 [[testing].testingFlow1.stage1.02] org.mule.exception.DefaultMessagingExceptionStrategy:
********************************************************************************
Message               : Failed to invoke send. Message payload is of type: String
Code                  : MULE_ERROR--2
--------------------------------------------------------------------------------
    Exception stack is:
    1. Connection refused: connect (java.net.ConnectException)
    java.net.DualStackPlainSocketImpl:-2 (null)
    2. java.net.ConnectException: Connection refused: connect (com.sun.jersey.api.client.ClientHandlerException)
    com.sun.jersey.client.urlconnection.URLConnectionClientHandler:148 (null)
    3. Failed to invoke send. Message payload is of type: String (org.mule.api.MessagingException)
    org.mule.modules.msmq.processors.SendMessageProcessor:198 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MessagingException.html) 

Любая помощь или направления приветствуются! Изображение msmq-config для ясности: Тестовое соединение успешно установлено


person shrinathM    schedule 07.08.2014    source источник


Ответы (2)


Доказательством пудинга является Mule, а не Studio: если Mule не может подключиться, то Studio, скорее всего, тоже не сможет, но не может сообщить о проблеме.

Поэтому вам нужно исправить элемент msmq:config, пока он не заработает.

На первый взгляд это serviceAddress="machinename/localhost:9000" выглядит очень подозрительно. Вы должны либо использовать фактическое имя компьютера и порт, либо localhost и порт, если вы работаете совместно с MSMQ.

person David Dossot    schedule 07.08.2014
comment
Имя компьютера Я специально изменил его для конфиденциальности. В мастере глобального элемента msmq. После нажатия Тестовое соединение оно выполняется успешно, но когда я запускаю его в потоке, он терпит неудачу. - person shrinathM; 08.08.2014
comment
Привет, Дэвид, когда я изменил входящий http-компонент на запрос-ответ, я получил сообщение: Не удалось вызвать отправку. Тип полезной нагрузки сообщения: String .. Есть ли здесь ключ ?? Должен ли я использовать POST вместо запроса GET? - person shrinathM; 08.08.2014
comment
Это просто еще один побочный эффект сбоя соединения. И, как я уже сказал, тот факт, что Studio говорит, что он работает, не обязательно означает, что это так. Если Мул говорит, что это не так, Мул прав. Можете ли вы успешно подключиться по telnet к хосту и порту, которые вы настроили в msmq:config? - person David Dossot; 08.08.2014
comment
Привет, Дэвид! Почему значение адреса хоста в ‹appSettings› имеет знак «+» .. Нужно ли мне заменить его на «localhost»? ‹! - Настроить службу для прослушивания по следующему адресу. - ›‹ добавить ключ = значение OwinHostAddress = https: // +: 9000 // ›... - person shrinathM; 11.08.2014
comment
Замените его соответствующим именем хоста, на котором брокер MSMQ прослушивает порт 9000. Если это localhost, используйте localhost. Если это удаленный хост, используйте имя хоста. - person David Dossot; 11.08.2014
comment
Спасибо, Дэвид, я хотел это подтвердить, после всех попыток мне было отказано в соединении. Я единственный в мире пытаюсь протестировать коннектор Mule MSMQ? - person shrinathM; 11.08.2014
comment
Это взаимодействие с технологиями Microsoft все еще довольно ново, так что, может быть, еще не так много людей используют его? Возможно, лучше всего напрямую связаться с MuleSoft, - person David Dossot; 11.08.2014

<?xml version="1.0" encoding="UTF-8"?>

<mule xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:msmq="http://www.mulesoft.org/schema/mule/msmq" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation"
    xmlns:spring="http://www.springframework.org/schema/beans" version="EE-3.6.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd
http://www.mulesoft.org/schema/mule/msmq http://www.mulesoft.org/schema/mule/msmq/current/mule-msmq.xsd
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd">
    <msmq:config name="MSMQ" serviceAddress="x.x.x.:9333" accessToken="wRuoma0PhX4ZHA1vQosdefff="  rootQueueName=".\private$\msmqdemo" ignoreSSLWarnings="true" doc:name="MSMQ"/>
    <flow name="msmqreceiveFlow">
       <set-payload value="Hello" doc:name="Set Payload"/>
    <msmq:send config-ref="MSMQ__MSMQ_Connection" queueName="msmqdemo" doc:name="MSMQ"/>
    <logger message="#[payload]" level="INFO" doc:name="Logger"/>
    </flow>
</mule>

Попробуйте этот пример. Я думаю, что адрес службы неверен. Этот пример для отправки сообщения в очередь MSMQ.

person srikrishna sri    schedule 09.06.2016