Hi,

What version of Camel do you use ? I think we have fixed the similar issue
with https://issues.apache.org/jira/browse/CAMEL-13529

On Fri, Sep 25, 2020 at 4:50 AM Reji Mathews <[email protected]> wrote:

> Hello community
>
> I have a transacted route with a jdbc operation. It has a
> DataSourceTransactionManager bean in the application context which is set
> with the datasource.
>
> Though the log indicates rollback, the row inserted into the table wasn't
> rolled back. Any suggestions would be helpful.
>
>
> 16:25:09.444 [http-nio-8888-exec-3] INFO
>  com.company.camel.core.FlowManager - Integration is now started. Context
> model <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <routes xmlns="http://camel.apache.org/schema/spring";>
>     <route customId="false" id="route2">
>         <from uri="jetty:http://0.0.0.0:8081/txn?httpMethodRestrict=GET"/>
>         <onException id="onException2" useOriginalMessage="true">
>             <exception>java.lang.Exception</exception>
>             <process id="process5"/>
>             <choice id="choice2">
>                 <when id="when2">
>                     <simple>${property.rollback_plans} != null</simple>
>                     <to id="to4" uri="direct:rollback_plans_router"/>
>                     <rollback id="rollback3" markRollbackOnly="true"/>
>                 </when>
>                 <otherwise id="otherwise2">
>                     <log id="log4" loggingLevel="ERROR"
> message="${exception}"/>
>                     <to id="to5" pattern="InOnly"
> uri="seda:exception_reporters?multipleConsumers=true"/>
>                     <process id="process6"/>
>                     <rollback id="rollback4" markRollbackOnly="true"/>
>                 </otherwise>
>             </choice>
>         </onException>
>         <transacted id="transacted1">
>             <log id="log5" message="Received http payload : ${body}"/>
>             <to id="to6"
> uri="direct:5272a9f8-a718-3585-ac99-ab98b1f6007c"/>
>         </transacted>
>     </route>
> <route customId="false" id="route1">
>         <from uri="direct:5272a9f8-a718-3585-ac99-ab98b1f6007c"/>
>         <setBody id="setBody1">
>             <simple>insert into mydb.transaction_test (name) values ( '${
> property.name}' )</simple>
>         </setBody>
>         <log id="log2" loggingLevel="INFO" message="Executing Sql Statement
> : ${body}"/>
>         <to id="to3"
> uri="jdbc:fc9af189-1fe3-4d3b-8ac6-06a5a65dbe6a?resetAutoCommit=false"/>
>         <removeHeaders id="removeHeaders1" pattern="CamelJdbc*"/>
>         <throwException id="throwException1"/>
>         <setBody id="setBody2">
>             <expressionDefinition>language[simple:{ "status" : "ok"
>  }]</expressionDefinition>
>         </setBody>
>         <log id="log3" loggingLevel="INFO" message="${body}"/>
>     </route>
> </routes>
>
> 16:25:18.052 [qtp5207044-102] INFO  route2 - Received http payload :
> 16:25:18.075 [qtp5207044-102] INFO  route1 - Executing Sql Statement :
> insert into mydb.transaction_test (name) values ( 'matt' )
> 16:25:18.365 [qtp5207044-102] ERROR
> com.company.camel.core.route.RouteErrorHandler - Error has occurred: custom
> made
> 16:25:18.381 [qtp5207044-102] ERROR route1 - java.lang.Exception: custom
> made
> 16:25:18.407 [Camel (ecdaaba8-cc6a-3312-ac13-fb2eaaf42d64) thread #3 -
> seda://exception_reporters] INFO  route3 - creating entry in error table
> {"error_message":"custom made","error_code":"APIC.8000"}
> 16:25:18.407 [Camel (ecdaaba8-cc6a-3312-ac13-fb2eaaf42d64) thread #4 -
> seda://exception_reporters] INFO  route4 - creating entry in error queue
> {"error_message":"custom made","error_code":"APIC.8000"}
> 16:25:18.417 [qtp5207044-102] WARN
>  org.apache.camel.processor.DefaultErrorHandler - Rollback (MessageId:
> ID-5CG7324CR4-1600979086161-1-10 on ExchangeId:
> ID-5CG7324CR4-1600979086161-1-1) due: custom made
>
> Message History
>
> ---------------------------------------------------------------------------------------------------------------------------------------
> RouteId              ProcessorId          Processor
>                                                Elapsed (ms)
> [route2            ] [route2            ] [jetty:
> http://0.0.0.0:8081/txn?httpMethodRestrict=GET                          ]
> [
>       912]
> [route2            ] [transacted1       ] [transacted
>                                              ] [         0]
> [route2            ] [log5              ] [log
>                                               ] [         5]
> [route2            ] [to6               ]
> [direct:5272a9f8-a718-3585-ac99-ab98b1f6007c
>     ] [         0]
> [route1            ] [setBody1          ] [setBody[simple{Simple: insert
> into mydb.transaction_test (name) values ( '${pr] [         1]
> [route1            ] [log2              ] [log
>                                               ] [         1]
> [route1            ] [to3               ]
> [jdbc:fc9af189-1fe3-4d3b-8ac6-06a5a65dbe6a?resetAutoCommit=false
>     ] [       280]
> [route1            ] [throwException1   ]
> [throwException[java.lang.Exception]
>     ] [         0]
> [route1            ] [process1          ] [Processor@0xac21e7
>                                              ] [         3]
> [route1            ] [choice1           ]
> [when[simple{${property.rollback_plans} != null}]choice[]
>    ] [        43]
> [route1            ] [log1              ] [log
>                                               ] [         1]
> [route1            ] [to2               ]
> [seda:exception_reporters?multipleConsumers=true
>     ] [         1]
> [route1            ] [process2          ] [Processor@0x1b1ce78
>                                               ] [        27]
> [route1            ] [rollback2         ] [rollback
>                                              ] [         0]
>
> 16:25:18.510 [qtp5207044-102] WARN
>  org.apache.camel.spring.spi.TransactionErrorHandler - Transaction rollback
> (0x17180b2) redelivered(false) for (MessageId:
> ID-5CG7324CR4-1600979086161-1-2 on ExchangeId:
> ID-5CG7324CR4-1600979086161-1-1) due exchange was marked for rollbackOnly
>

Reply via email to