Поддерживает ли поток виртуальных машин шаблон обмена запрос-ответ во входящей конечной точке в mulesoft? - PullRequest
0 голосов
/ 19 марта 2020

Если он поддерживает, то поток не идет дальше в моем потоке виртуальной машины. Компонент def не вызывается.

<flow name="abc">
<vm:inbound-endpoint exchange-pattern="request-response"
        path="abc" doc:name="VM" />
<component doc:name="def">
        <spring-object bean="defcomponent" />
</component>
</flow>

1 Ответ

0 голосов
/ 21 марта 2020

Да, он поддерживает, но, читая документацию, я подозреваю, что она не работает так, как вы ожидаете: https://docs.mulesoft.com/mule-runtime/3.9/vm-transport-reference#features

запрос-ответ:

При использовании конечных точек запроса-ответа сообщения доставляются напрямую из исходящей конечной точки vm во входящую конечную точку vm, которая прослушивает тот же путь. Эта доставка блокируется и происходит в том же потоке. Если в том же приложении Mule, которое прослушивает этот путь, нет конечной точки ВМ входящего запроса-ответа, то отправка сообщения из исходящей конечной точки завершится неудачно.

односторонняя:

При использовании односторонние конечные точки, сообщения доставляются в соответствующую входящую конечную точку через очередь. Эта доставка неблокируемая. Если в том же приложении Mule, прослушивающем этот путь, нет входящей односторонней конечной точки, то, хотя отправка сообщения завершается успешно, сообщение остается в очереди. По умолчанию эта очередь находится в памяти, но также можно настроить постоянную очередь, которая использует файловую систему в качестве механизма сохранения.

Я понимаю, что для запроса-ответа существует прямая передача из vm: исходящий в vm: входящий, а не через очередь. Это не означает, что существует ответ на другую функцию пути, как в очереди JMS.

...