Upload
charan-teja-r
View
198
Download
5
Embed Size (px)
Citation preview
Mule ESB
Mule Message Structure
The Mule message is the data that passes through an application via one or more flows. It consists of two main parts:
The message header, which contains metadata about the message The message payload, which contains your business-specific data.
Mule Message Properties and Variables
Message header consists of properties which provide useful information about the message
variables represent data about a message Properties have two main
scopes: inbound and outbound. Inbound Property
Mule Message Variables
Variables are user-defined metadata about a message. Variables have three scopes:
Flow variables apply only to the flow in which they exist.
Session variables apply across all flows within the same application.
Outbound Endpoint
Mapping message headers to transport headers
Mapping transport headers to message headers
Inbound Endpoint
Transformation Types
3 Types of Transformers Type transformation - involves converting the ‘type’ of the message, for example; converting a byte stream to a string or converting a JMS Message to a Java object.
Message transformation involves converting the message itself,for example; converting a BookingRequest object into anAirlineTicket object.
Property Transformations involves the properties on a message.Each message may contain properties, usually related to the
transport used. For example, a message sent to an SMTP server would have ‘To’, ‘From’ and ‘CC’ properties
SPLITTER
A message splitter can be used to break down an outgoing message into parts and dispatch those parts over different endpoints configured on the router.
SplitterExample
<flow name="SplitterExampleFlow1" doc:name="SplitterExampleFlow1"> <http:inbound-endpoint exchange-pattern="request-response"
host="localhost" port="8081" doc:name="HTTP"/> <splitter expression="#[xpath('//actor')]" doc:name="Splitter"
enableCorrelation="IF_NOT_SET"/> <logger message="#[message.payload]" level="INFO"
doc:name="Logger"/> </flow>
<flow name="aggregateLineItems"><jms:inbound-endpoint queue="lineitem.complete“ connector-ref="jmsConnector"/><collection-aggregator timeout="60000“ failOnTimeout="true" /><custom-transformerclass="com.prancingdonkey.transformer.LineItemsToOrderTransformer"/><component class="com.prancingdonkey.service.OrderProcessingService"/></flow>
Mule Aggregator Example
Resequencer
If fractions of the message are being processed in parallel in different servers, there's a good chance that they may take different lengths of time to be processed, and consequently fall out of order.
The Resequencer will wait for all of the messages in the group to arrive (keeping track of MULE_CORRELATION_ID and MULE_CORRELATION_GROUP_SIZE )
Reorder them according to their MULE_CORRELATION_SEQUENCE index.
The Resequencer outputs will be in distinct messages,
Thank You