Announcement Announcement Module
Collapse
No announcement yet.
Issue in declarative transaction management for batch job Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Issue in declarative transaction management for batch job

    Hi,

    The declarative transaction management is not working in batch programs.

    In firstBatch.xml file, i have written.

    Code:
    	<bean id="firstBatchJob" class="com.project.jobs.FirstBatch">
    		<property name="referenceManager" ref="referenceManager" />
    	</bean>
    	
         <bean id="referenceManagerServiceTarget" class="com.project.managerImpl.ReferenceManagerImpl">
    		<property name="referenceDAO" ref="referenceDAO" />
    		<property name="alternateDAO" ref="alternateDAO" />
         </bean>
    
         <bean id="referenceManager"
               class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
               <property name="transactionManager"><ref local="txManager"/></property>
               <property name="target"><ref bean="referenceManagerServiceTarget"/></property>
               <property name="transactionAttributes">
                     <props>
                           <prop key="insertReferenceData">PROPAGATION_REQUIRED,-Exception</prop>
                     </props>
               </property>
         </bean>
         
          <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
                <property name="dataSource" ref="dataSource"/>
          </bean>
    In insertReferenceData method, the referenceDAO and alternateDAO methods are called.

    After inserting data during referenceDAO method call if there is any exception during insertion in alternateDAO method, the transaction is not getting rolled back.

    The data is present in Table 1, it is not rolled back.

    What is the reason? Have i done any mistakes in implementing declarative transaction management? Please help me.

    My beans definition is

    Code:
    <beans xmlns="http://www.springframework.org/schema/beans"
    	xmlns:batch="http://www.springframework.org/schema/batch" xmlns:aop="http://www.springframework.org/schema/aop"
    	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:p="http://www.springframework.org/schema/p"
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="
    		http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    		http://www.springframework.org/schema/batch 
    http://www.springframework.org/schema/batch/spring-batch-2.1.xsd
    		http://www.springframework.org/schema/aop 
    http://www.springframework.org/schema/aop/spring-aop-2.1.xsd
    		http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-2.1.xsd">
    Thanks
    Mahesh
Working...
X