0

以下是我們的應用程序如何配置Spring批處理。Spring spatch掛起事務(NOT_SUPPORTED)在websphere應用程序服務器上執行tasklet

Spring批處理和Quartz相關表配置在單獨的實例上。 特定於應用程序的數據庫實例不同。 在WebSphere Application Server 8.0上運行應用程序

我們不希望將Spring批處理事務傳播到tasklet執行。爲了達到這個目標,我們嘗試過,但似乎並不奏效。 有沒有人遇到過類似的問題?請建議如何繼續。

交易未被暫停。 Spring使用ConnectionHolder緩存連接,如果連接處於事務中,則不會釋放連接。我們不希望連接被緩存,我們希望從數據源(連接池)獲得新的連接,而不是使用彈簧緩存的連接句柄。

<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"/> 

謝謝。

回答

0

真正處理這個問題的最好方法是使用一個單獨的,特定於應用程序的數據源,該數據源與您當前所屬的事務無關。這首先防止了使用中的連接成爲交易的一部分。

相關問題