Hi Brian,

I added the rollback-for atrribute to handle rollback if there are any
errors .
<tx:method name="doProcess*" read-only="true"
rollback-for="com.workflow.exceptions.MultipleErrorsException"/>

Here is the AOPconfig. The transactionProcessors is the service layer which
calls DAO to insert/Update..
<aop:config>
          <aop:pointcut id="daoServiceOperation" expression="execution(*
com.processors.TransactionProcessor.*.*(..))" />
          <aop:advisor advice-ref="txAdvice"
pointcut-ref="daoServiceOperation" />
     </aop:config>

For testing right after Insert/Update i throw MultipleErrorsException to
verify the rollback. But rollback is not happening and the transacation is
being commited.

I need to handle Rollback After DAO call my transaction processor also calls
someother workflow processor. If there are any errors in teh other workflows
then i need to rollback the transaction..

Any ideas how to handle transaction here?

Thanks
Bala



On Fri, Aug 22, 2008 at 11:04 AM, bala r <[EMAIL PROTECTED]> wrote:

> Hi Brian,
>
> Thank you so much.. I will try your config.. I want to handle the
> transaction in the Service layer not in DAO.
> I will implement the same config and call the AOP in the service layer.
>
> Thanks
> Bala.
>
>
> On Fri, Aug 22, 2008 at 7:36 AM, Brian Parkinson <[EMAIL PROTECTED]>wrote:
>
>>  Hi Bala:
>>
>> I am using Spring with iBatis with transations. Below is the config that I
>> am using - note the use of the spring tx:* AOP transaction injection. There
>> are docs in the spring project related to how to set this up (mine below is
>> pretty much a copy of that example).
>>
>> Hope it helps.
>>
>> Brian Parkinson.
>>
>> --- x8 snip
>>
>>  SqlMapConfig contains:
>>
>>  <transactionManager type="EXTERNAL">
>>   <dataSource type="DBCP">
>>   </dataSource>
>>  </transactionManager>
>>
>>  Spring transactions:
>>
>>  <bean id="txManager"
>> class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
>>   <property name="dataSource" ref="dataSource"/>
>>  </bean>
>>
>>  <tx:advice id="txAdvice" transaction-manager="txManager">
>>   <tx:attributes>
>>    <tx:method name="get*" read-only="true" />
>>    <tx:method name="*" />
>>   </tx:attributes>
>>  </tx:advice>
>>
>>  <aop:config>
>>   <aop:pointcut id="daoServiceOperation" expression="execution(*
>> com.ecobee.foundation.dao.ibatis.*.*(..))" />
>>   <aop:advisor advice-ref="txAdvice" pointcut-ref="daoServiceOperation" />
>>  </aop:config>
>>
>> Spring datasource:
>>
>>  <bean id="mapConfig"
>> class="org.springframework.core.io.ClassPathResource">
>>   <constructor-arg>
>>    <value>com/ecobee/foundation/dao/ibatis/SqlMapConfig.xml</value>
>>   </constructor-arg>
>>  </bean>
>>
>>  <bean id="dataSource"
>> class="org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy">
>>   <property name="targetDataSource">
>>    <ref local="dataSourceImpl"/>
>>   </property>
>>  </bean>
>>
>>  <bean id="dataSourceImpl" class="org.apache.commons.dbcp.BasicDataSource"
>> destroy-method="close">
>>   <property name="driverClassName" value="com.mysql.jdbc.Driver" />
>>   <property name="url" value="jdbc:mysql:///ecobee" />
>>   <property name="username" value="XXX" />
>>   <property name="password" value="YYY" />
>>   <property name="initialSize" value="10" />
>>   <property name="maxActive" value="100" />
>>   <property name="maxIdle" value="16" />
>>   <property name="maxWait" value="2000" />
>>  </bean>
>>
>>  <bean id="sqlMapClient"
>> class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
>>   <property name="dataSource" ref="dataSource" />
>>   <property name="configLocation" ref="mapConfig" />
>>  </bean>
>>
>>
>>
>>
>>  ------------------------------
>> *From:* bala r [mailto:[EMAIL PROTECTED]
>> *Sent:* Thursday, August 21, 2008 4:10 PM
>> *To:* [email protected]
>> *Subject:* Spring with IBatis and Transaction Manager Helps.
>>
>>  Hi,
>>
>> I have to implement TransacationManager in my module using Spring with
>> Ibatis.
>>
>> Here is my requirments.
>>
>> TransacationProcessor  -
>>   --Open Transacation
>>   --Call LoopProcessor(process multiple files )
>>            --- Call DatabaseProcessor
>>                       -- Call SQLMqpClient Insert/update/delete.
>>            -- Call OtherProcessor do Work.
>>   --All Success then Committransaction.
>>   -- If fails rollbackTransacation.
>>   --End Transaction.
>>
>> Any documents for handling Spring and Ibaris or any examples i can get
>> from any source?
>> I tried google Spring with Ibatis transaction but couldnt find any much
>> information.
>>
>> Thanks
>> bala.
>>
>
>

Reply via email to