我們有做約以下服務方法:Spring:使用事務DB方法處理長時間運行的Web服務調用的最佳方法?
@Transactional
public void serviceMethod(...){
for(Item i : bunchOfItems){
webServices.webServiceCall(...);
dao.daoUpdateMethod(...);
}
}
的問題是,一旦發生更新的DB是持有鎖在桌子上爲交易的持續時間(web服務每次平均調用5秒)。當然,webservice調用或DAO調用中的任何異常都應該導致完全回滾。
什麼是這種情況,最好的辦法?
爲什麼會更新鎖定整個表?在任何體面的DBMS中,它只會鎖定更新的行。 – 2011-04-21 08:25:41
這個問題與Spring沒有關係,它是一個通用的問題。 – Ralph 2011-04-21 08:47:57