如果事務產生多個線程,是否有辦法模仿Spring中的全局事務?我知道這在Spring中並不是真的可能,但是在想也許有一些解決方法。Spring中的全局事務
1
A
回答
0
Spring不提供事務支持;它僅僅與現有機制(JTA,本地交易,模擬交易)聯繫在一起。所以,你可以控制你使用的任何基礎交易。
如果您在應用程序服務器中,其中一些服務器允許在容器內執行並行處理。容器管理的線程池具有向其他線程傳播容器資源(JNDI上下文,事務等)的優勢。例如,WebSphere和WebLogic使用WorkManager API:http://www.devx.com/Java/Article/28815/0 ,儘管我似乎記得Java EE 6現在支持線程池(儘管如此,不太確定)。
0
通常,事務和其他上下文由容器保存在ThreadLocal中,並且在線程執行期間它可用於每個方法。如果您要使用WorkManager API,則需要檢查供應商是否支持將事務性上下文傳播到異步作業(規範from what I recall不要求)。
另一種方法是查看Spring的custom bean scopes - 您可以嘗試爲您的操作實現自定義作用域並在其中存儲Transactional上下文。這可能不是微不足道的。
更一般的說法是,需要將事務範圍傳播到異步線程並不合適 - 通常異步操作要麼是CPU密集型的,要麼是長期存在的,也許可以更好地重新實現,而無需事務處理。
相關問題
- 1. Spring的全局事務超時HibernateTransactionManager
- 2. 獲取元素後提交的Spring全局事務
- 3. Spring與Hibernate和MySQL,全局和本地事務管理
- 4. Meteor.js - 服務器上的全局事件?
- 5. CUDA全局內存事務的成本
- 6. UWP中的全局事件
- 7. 休眠Spring的事務中
- 8. Spring MVC中的全局模型
- 9. Spring SAML - 全局唯一EntityIds?
- 10. Spring LDAP事務
- 11. Spring JPA事務
- 12. 如何使Spring集成HTTP出站通道適配器參與全局事務
- 13. Spring的事務:回滾事務
- 14. Spring Security全局方法安全位置
- 15. ChildWindow_Loaded的全局事件
- 16. java.sql.SQLException:無法在全局事務中使用本地事務提交
- 17. 事件中心(服務總線)的全局序列號
- 18. CUDA內核中全局內存加載事務的計算
- 19. C#中的全局重要事件#
- 20. jQuery中的全局自定義事件
- 21. Visual Studio中的全局構建事件
- 22. iPhone - 故事板中的全局變量
- 23. Spring Boot中的全局方法安全性
- 24. VoltDB是否完全支持多部分(或全局)事務中的ACID?
- 25. Spring事務配置
- 26. Spring事務管理
- 27. Spring事務鏈接
- 28. 從JSP訪問Spring的全局值
- 29. Spring MVC上的全局XML配置?
- 30. 使用Spring的JSP全局變量