WSO2 ESB - Message Processors [ Documentation Index ]

WSO2 ESB Message Processors

Contents

Introduction

Message processor can be used to implement different messaging and integration patters along with Message stores.

Message processors will consume the messages in message stores and do the processing of them.

For Example Think of a scenario where we have a back end service that can only accept messages at a given rate and incoming traffic to ESB will have different message rates. So to serve that traffic utilizing the backend services We can have a Message store that temporary store the traffic and a Message processor that will consume that messages and send to the back end service at a given rate.

Users can write there own message processor implementation and plug them using the configuration. WSO2 ESB ships two message store implementations.

  1. Message Forwarding processor
  2. Message Sampling Processor

Message Processor Configuration

            <messageProcessor name="string" class="classname" messageStore="classname" >
                <parameter name="string" > "string" </parameter>*
            </messageProcessor>
        

Message Processor is a top level ESB configuration element where it should have a unique name.

class attribute value is the fully qualified class name of the underlying message processor implementation.

There can be many message processor implementations.Users can write their own message processor implementation and use it.

Parameters section is used to configure the parameters that is needed by underlying message processor implementation

Message Forwarding Processor

Message Forwarding Processor consumes messages in message store and send it to an address endpoint.

If Message successfully delivered to the endpoint will will delete the message from the message store.

In a failure it will re-try after a configured interval.

Message processor can be activate/deactivate from the ui.

When its in the deactive state users can manually delete/resend messages from a UI

Figure 1: Messages ProcessorOperations

Message Forwarding Processor Parameters

Parameter Name Value Required
interval Message retry interval in milli seconds No default is value is 1000ms
max.deliver.attempts Maximum re delivery attempts before deactivating the processor NO
axis2.repo Axis2 Client repository to be use to send messages NO
axis2.config Axis2 Configuration to be use to send messages NO
message.processor.reply.sequence Name of the Sequence that reply of the message should be sent to NO
message.processor.fault.sequence Name of the sequence that fault message should be sent to in case of a SOAP fault NO
quartz.conf Quartz configuration file path NO
cronExpression Cron Expression to be used to configure the re try pattern NO

Message Context properties to be used with Message Forwarding Processor

Property Name Value Required
target.endpoint Name of the Address Endpoint which message should be delivered to YES.
OUT_ONLY true if this is a out only message Required for out only scenarios

Message Sampling Processor

Message Sampling Processor consumes messages in message store and send it to a configured sequence.

This process happens in a pre-configured interval.

Message Sampling Processor Parameters

Parameter Name Value Required
interval Message retry interval in milli seconds Default value is 1000ms
quartz.conf Quartz configuration file path NO
cronExpression Cron Expression to be used to configure the re try pattern NO