| [[RequestReply-RequestReply]] |
| Request Reply |
| ~~~~~~~~~~~~~ |
| |
| Camel supports the |
| http://www.enterpriseintegrationpatterns.com/RequestReply.html[Request |
| Reply] from the link:enterprise-integration-patterns.html[EIP patterns] |
| by supporting the link:exchange-pattern.html[Exchange Pattern] on a |
| link:message.html[Message] which can be set to *InOut* to indicate a |
| request/reply. Camel link:components.html[Components] then implement |
| this pattern using the underlying transport or protocols. |
| |
| image:http://www.enterpriseintegrationpatterns.com/img/RequestReply.gif[image] |
| |
| For example when using link:jms.html[JMS] with InOut the component will |
| by default perform these actions |
| |
| * create by default a temporary inbound queue |
| * set the JMSReplyTo destination on the request message |
| * set the JMSCorrelationID on the request message |
| * send the request message |
| * consume the response and associate the inbound message to the request |
| using the JMSCorrelationID (as you may be performing many concurrent |
| request/responses). |
| |
| [TIP] |
| ==== |
| *Related* |
| |
| See the related link:event-message.html[Event Message] message |
| ==== |
| |
| [[RequestReply-ExplicitlyspecifyingInOut]] |
| Explicitly specifying InOut |
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| |
| When consuming messages from link:jms.html[JMS] a Request-Reply is |
| indicated by the presence of the *JMSReplyTo* header. |
| |
| You can explicitly force an endpoint to be in Request Reply mode by |
| setting the exchange pattern on the URI. e.g. |
| |
| [source,java] |
| --------------------------------- |
| jms:MyQueue?exchangePattern=InOut |
| --------------------------------- |
| |
| You can specify the exchange pattern in DSL rule or Spring |
| configuration. |
| |
| [[RequestReply-UsingThisPattern]] |
| Using This Pattern |
| ++++++++++++++++++ |
| |
| If you would like to use this EIP Pattern then please read the |
| link:getting-started.html[Getting Started], you may also find the |
| link:architecture.html[Architecture] useful particularly the description |
| of link:endpoint.html[Endpoint] and link:uris.html[URIs]. Then you could |
| try out some of the link:examples.html[Examples] first before trying |
| this pattern out. |