0
A
回答
0
閹BMT中進行選擇和CMT依賴於商業決策,而不是性能。
在我看來,沒有最佳實踐,但是這些只是一個或者更好的例子。
BMT
- 你有
Stateful
豆和全球承諾取決於其他方法的結果。通過與Stateful
一起使用BMT,您可以實現事務處理公開,並在業務決策完成時關閉/落實。 - 對於你想擁有完全控制事務邊界
CMT
- 任何原因,你有一個
Stateful
,你要實現的會話同步接口知道什麼時候開始交易結束等。在這種情況下,你的bean必須使用CMT - 你有一個EJB鏈,你希望他們成爲單個事務的一部分,在這種情況下你需要使用CMT(儘管第一個ejb可以啓動並共享它BMT交易)。
在某些情況下,BMT的用法需要考慮。
- 如果您將BMT與
MessageDriven
一起使用,則該消息不是事務的一部分,因此消息被容器確認。 - 如果您使用BMT的EJB和方法,則該方法無法加入現有的事務。
0
Bean Managed Transaction應該比Container Managed Tansaction快一點。
CMT需要做一些額外的工作,這不需要在BMT中完成。
- 容器必須檢查事務是否已經開始。
- 容器必須讀取方法的@TransactionAttribute註釋。
- 在運行方法或拋出異常(在TransactionAttributeType的情況下:從不,強制性)之前,容器必須啓動一個新的Transaction(在TransactionAttributeType爲Required,RequiresNew的情況下)。
相關問題
- 1. EJB事務管理
- 2. EJB中的事務管理
- 3. ejb sessionbean中的嵌套事務bean管理事務
- 4. Bean管理事務:事務傳播
- 5. 容器管理事務
- 6. 事務管理器
- 7. 由EJB事務管理器管理的Rabbit AMQPTemplate消息
- 8. 事務管理
- 9. EJB(3.1)容器內的IBATIS 3中的事務管理
- 10. 容器管理器事務和JackRabbit
- 11. Spring的事務管理器
- 12. HIbernate中的容器管理事務
- 13. 如何在EJB容器內部管理事務?
- 14. MyBatis CDI +容器管理事務
- 15. 休眠事務管理器
- 16. Java事務管理器
- 17. 多事務管理器
- 18. WebLogic事務管理器
- 19. 爪哇,JPA,Bean管理事務,TransactionRequiredException
- 20. 訪問容器管理的事務中的事務狀態
- 21. 可以彈簧事務管理器能夠管理2件事務嗎?
- 22. 回滾與Spring的事務管理器
- 23. Spring事務管理
- 24. dynamoDB事務管理
- 25. C#事務管理
- 26. 事務處理性能以及如何減輕事務管理器?
- 27. Spring與不同事務管理器的嵌套事務
- 28. SQL服務器 - 事務日誌管理
- 29. 管理iPOJO中的事務
- 30. 春/ RabbitMQ的:事務管理