This site contains the documentation that is relevant to older WSO2 product versions and offerings.
For the latest WSO2 documentation, visit https://wso2.com/documentation/.
Message Processors
A message processor is used to deliver messages that have been temporarily stored in a message store. This approach is useful for serving traffic to back-end services that can only accept messages at a given rate, whereas incoming traffic to the ESB profile arrives at different rates. You use the Store mediator to store messages in the message store, and then you use a message processor to deliver messages from the message store to the back-end service at a given rate. Using message processors and message stores allows you to implement different messaging and integration patterns.
Multiple message processors can use the same message store. For example, in a clustered environment, each of the nodes might have an instance of the same message processor, each of which would connect to the same message store and evenly consume messages from it. The message store acts as a manager of these consumers and their connections and ensures that messages are processed by only one message processor, preventing message duplication.
The ESB profile ships with the following message processor implementations:
You can also implement your own message processor by implementing the MessageProcessor interface and adding the message processor to the configuration.
You can increase performance of message processors either by increasing the member count or by having multiple message processors. If you increase the member count, it will create multiple child processors of the message processor.
Message Processor Configuration
You must have added a message store before you can add a message processor. You can also configure a message processor in the source view in the Management Console by adding the <messageProcessor>
element as a top-level entry in the configuration as follows:
Forwarding processor
<messageProcessor class="classname" name="unique string" targetEndpoint="endpoint name" messageStore="associated message store name"> <parameter name="string">"string"</parameter>* </messageProcessor>
Sampling and custom processors
<messageProcessor class="classname" name="unique string" messageStore="associated message store name"> <parameter name="string">"string"</parameter>* </messageProcessor>
Note
Message Processor does not work in tenant mode. It is a limitation in the current implementation.