[
https://issues.apache.org/activemq/browse/CAMEL-634?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43814#action_43814
]
Claus Ibsen commented on CAMEL-634:
-----------------------------------
D:\project\camel>svn commit --message "CAMEL-634: Applied patch with thanks to
Marat. Added unit test for transactional DataSource."
Sending camel-core\src\main\java\org\apache\camel\Exchange.java
Adding camel-core\src\main\java\org\apache\camel\ExchangeProperty.java
Sending
camel-core\src\main\java\org\apache\camel\impl\DefaultExchange.java
Sending
camel-core\src\main\java\org\apache\camel\processor\DeadLetterChannel.java
Adding
camel-core\src\test\java\org\apache\camel\ExchangePropertyTest.java
Sending
components\camel-jms\src\main\java\org\apache\camel\component\jms\EndpointMessageListener.java
Sending
components\camel-jms\src\test\java\org\apache\camel\component\jms\tx\ConditionalExceptionProcessor.java
Sending
components\camel-jms\src\test\java\org\apache\camel\component\jms\tx\QueueToQueueRequestReplyTransactionTest.java
Sending components\camel-spring\pom.xml
Sending
components\camel-spring\src\main\java\org\apache\camel\spring\spi\TransactionInterceptor.java
Adding
components\camel-spring\src\test\java\org\apache\camel\spring\interceptor\BookService.java
Adding
components\camel-spring\src\test\java\org\apache\camel\spring\interceptor\TransactionalClientDataSourceTest.java
Adding
components\camel-spring\src\test\resources\org\apache\camel\spring\interceptor\transactionalClientDataSource.xml
Transmitting file data .............
Committed revision 673008.
> DeadLetterChannel default redelivery policy eclipsed expected transactional
> behaviour in a transacted route
> -----------------------------------------------------------------------------------------------------------
>
> Key: CAMEL-634
> URL: https://issues.apache.org/activemq/browse/CAMEL-634
> Project: Apache Camel
> Issue Type: Bug
> Components: camel-core, camel-jms
> Affects Versions: 1.4.0
> Reporter: Marat Bedretdinov
> Assignee: Claus Ibsen
> Fix For: 1.4.0
>
> Attachments: tx.fix.2008-06-24-16-54.patch,
> tx.fix.2008-06-30-19-16.patch
>
>
> Camel routes get a DLC processor with a redelivery policy, which defaults to
> redeliverying a message to a destination processor up to 6 times. In case of
> a transacted route it is preferable that DLC's delivery policy be reset to a
> single attempt, so that a fan-out transacted route would not hold tx locks on
> destinations for too long.
> The DLC's default redelivery policy has also made transactional tests not
> really testing tx behavior of Camel Components backed runtimes (jms brokers,
> etc), rather DLC would catch the exception and try to redeliver the message
> to destination processor and not letting the components to rollback native
> transactions initiated by components backed runtimes (jms, db)
> The attached patch installs a property into Camel Exchange that indicates
> weather a route is transacted. This is done in
> org.apache.camel.spring.spi.TransactionInterceptor.java
> DLC then checks if the flow is transacted and sets its redelivery policy to 1
> With this change JMS transactions are actually rolled back and messages are
> put back into the queue and then consumed again, verifying that brokers
> support transactions and can redeliver messages into Camel routes that were
> previously rolled back.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.