以下是我们的应用程序如何配置为Spring批处理。
Spring批处理和Quartz相关表是在一个单独的实例上配置的。特定于应用程序的DB实例是不同的。应用程序在WebSphere应用服务器8.0上运行
我们不希望春季批处理事务被传播到tasklet执行。实现这一点是我们已经尝试过的,但似乎行不通。有没有人遇到过类似的问题?请就如何进行提出建议。
事务不会被暂停。Spring使用ConnectionHolder缓存连接,如果连接位于事务下,则不释放连接。我们不希望缓存连接,我们希望从数据源(连接池)获得一个新的连接,而不是使用spring缓存的连接句柄。
<batch:job id="jobId" job-repository="jobRepository">
<batch:step id="stepId">
<batch:tasklet ref="taskletId">
<batch:transaction-attributes propagation="NOT_SUPPORTED" />
</batch:tasklet>
</batch:step>
</batch:job>
<bean id="transactionManager" class="org.springframework.transaction.jta.WebSphereUowTransactionManager"/>谢谢。
发布于 2015-11-04 22:05:30
处理这一问题的最佳方法是使用独立的、特定于应用程序的数据源,该数据源不与您当前参与的事务绑定。这将防止使用中的连接首先成为事务的一部分。
https://stackoverflow.com/questions/33500693
复制相似问题