@Async和@Transactional没有合作

时间:2014-10-29 10:49:14

标签: java spring asynchronous spring-transactions

我使用的是Spring 3.2.2版本,

我遇到的问题就像我使用@Transactional@Async时一样无效。

示例代码:

在大班:

@Override
@Transactional(value = "transactionManager")
public response process(inputparams) throws ReportServiceException {

    List<Future<Response>> futures=new ArrayList<Future<Response>>();

        for (Iterating for 4 times lets assume) {

            Future<Response> future =publisher.saveLogic(input);
            futures.add(future);

        }
       // After initiating threads done in above loop then
       // Iterating all futures and waiting till all threads done             


}

//在Publisher类中:

@Async("reportWorkManagerTaskExecutor")
public Future<ReportResponse> saveReport(ReportSaveRequestDTO reportSaveRequestDTO){

    //save logic to db 
    return new AsyncResult<Response>(null);

}

//在xml文件配置中,如

<bean id="transactionManager"
    class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="reportDataSource" />
</bean>

<tx:annotation-driven />
<task:annotation-driven executor="reportWorkManagerTaskExecutor"/>

当我从@Async方法中删除saveRepor(线程概念)时,它的工作非常完美。 但是当我添加它不起作用。 我尝试为@Transaction方法添加saveReport,但仍然没有用。

0 个答案:

没有答案