慕碼人8056858
2021-10-27 16:50:02
本地交易和BMT一樣嗎?本地事務需要事務管理器嗎?我讀到 transactionManager 對本地事務無效。那是對的嗎?JTA 為 CMT 和 BMT 提供了規定?
2 回答

蠱毒傳說
TA貢獻1895條經驗 獲得超3個贊
關于 BMT 或 CMT 的本地或全局事務處理沒有區別。
BMT 和 CMT 僅定義如何定義事務的開始和結束。在 CMT 中,它由帶注釋的方法的調用定義,在 BMT 中,事務的開始和結束是使用 UserTransaction 對象定義的。
如果全局事務是必要的,或者更好的是分布式事務,那么事務管理器將獨立于 BMT 或 CMT 進行安排。
一旦涉及多個事務資源,就需要這些全局事務或兩階段提交。例如,如果您使用 MessageDriven bean,該 bean 調用注釋為“Beanmanaged transaction processing”的 bean 并在 DBMS 中進行更改。在這種情況下,對消息隊列和 DBMS 這兩個資源都進行了兩階段提交。
所以,回答你的問題:
不,答案見上文。
如果沒有事務管理器,您將無法使用多個資源進行事務。J2EE-Containers 通常提供分布式事務的容器將使用事務管理器處理所有事務。在 jboss,您可以將數據源配置為“無 jta”,在這種情況下,您可以明確地將它們從兩階段提交中排除,但我認為盡管如此,jboss-transactionmanager 仍將處理此類數據源的 db-connections。
是的,如果“提供”是指“支持”
添加回答
舉報
0/150
提交
取消