Craig created CAMEL-12927:
-----------------------------
Summary: SQS: Optionally wait for transaction complete to send
messages in SqsProducer
Key: CAMEL-12927
URL: https://issues.apache.org/jira/browse/CAMEL-12927
Project: Camel
Issue Type: Improvement
Components: camel-aws
Affects Versions: 2.22.1
Reporter: Craig
Currently, SQS sends messages immediately not waiting for the transaction to
commit. Since SQS doesn't support transactional message sending, this behavior
is as expected. However, Camel could emulate transaction support for SQS by
waiting for the current transaction to commit before sending the message. This
would make SQS behave more in line with JMS.
In SqsConfiguration, add one new property:
* transacted
When transactioned=false (default), behavior is as it is today.
When transaction=true, don't send the message until the transaction completes.
In SqsProducer, wrap the call to
{code:java}
SendMessageResult result = getClient().sendMessage(request);{code}
like so:
{code:java}
org.springframework.transaction.support.TransactionSynchronizationManager.registerSynchronization(new
org.springframework.transaction.support.TransactionSynchronizationAdapter() {
@Override
public void afterCommit() {
SendMessageResult result = getClient().sendMessage(request);
}
});{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)