![](/img/trans.png)
[英]Spring + hibernate, nested NOT_SUPPORTED transaction attribute
[英]Spring Batch suspend transaction (NOT_SUPPORTED) for tasklet execution on websphere application server
這是為Spring批處理配置我們的應用程序的方式。
Spring Batch和Quartz相關的表在單獨的實例上配置。 特定於應用程序的數據庫實例是不同的。 應用程序在WebSphere Application Server 8.0上運行
我們不希望將Spring Batch事務傳播到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"/>
謝謝。
確實,解決此問題的最佳方法是使用單獨的,特定於應用程序的數據源,該數據源與您當前所參與的事務無關。 首先,這避免了使用中的連接成為事務的一部分。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.