Search code examples
wso2amazon-sqswso2-enterprise-integratoraws-sqs-fifowso2-esb

Is there any way (like retry )to handle AWS SQS Sendmessage Failure scenario in WSO2 EI 6.4.0?


I am performing SendMessage operation in WSO2 EI 6.4.0 using AWS SQS Connector (V1.0.7).

Sometimes Message is not posted to AWS SQS Queue, got some ERROR/WARNING Message in Log mentioned below

ERROR Code from Log:

Error_code = 101506 or Error_code = 101508

Warning Message:

    [HTTPS-Sender I/O dispatcher-2]  WARN {org.apache.synapse.transport.passthru.Targe
tHandler} -  Connection closed by target host before receiving the response  Remote Address : host/ip

So whenever failure occurs, mediation will go to fault sequence , I'm just looking for some solution like retry .

Can i add some endpoint timeout error handling inside sendMessage template code and trying to rebuild the same?

Or else inside faulty sequence shall i perform same sendMessage Operation once again ?

Kindly let me know the feasible solution..


Solution

  • Did you try to use a Message Store and a Message Processor to implement a Guaranteed Delivery System? You have to publish the message to a Message Store. A Message Processor can try to post it to the SQS. If it fails, it will be added to another Failover Message Store. We can add the message to the original message store after some time with the help of another Message Processor. This way, it will keep on retrying until it succeeds.

    https://docs.wso2.com/display/EI640/Guaranteed+Delivery+with+Failover+Message+Store+and+Scheduled+Failover+Message+Forwarding+Processor

    If this solution is too complex, you can go with your second option where you call the sendMessage Operation inside the fault Sequence.