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.
<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 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
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 |
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 consumes messages in message store and send it to a configured sequence.
This process happens in a pre-configured interval.
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 |