OTS中的要害部件 為了更好地理解OTS如何工作,我們需要先看看其要害部件。以下的部件可以直接地映射到EJB,而理解這些部件如何在OTS中工作能使我們更好地理解EJB中的事務。 ·Control ·terminator ·Coordinator ·Resource ·Synchronization 下圖示出了這些對象中定義的重要方法,以及在事務體系中這些對象的作用。 虛線框內是一個事務。事務中所有的對象都參與了這個事務,提交和回滾對所有的Resource對象都適用。 Control對象代表一個事務。從該對象我們可以得到Coordinator和Terminator 。EJB開發者不會看到Control對象,容器代表bean用Control對象來治理事務。 當一個bean方法返回且該方法在部署描述符中聲明在方法返回前需提交該事務時,容器也用Terminator來提交或回滾事務。提交或回滾事務時,所有事務中的對象都會相應的提交或回滾。 Resource是包含事務狀態的對象。例如,它可能是一個數據庫連接。在這個對象上調用commit()會更新數據庫。一個rollback()調用會恢復該事務開始時通過這個連接對數據作的任何改變。完成提交或回滾后,數據庫中相應的記錄就會解鎖。應用的鎖級別會在部署描述符中指定。這個對象的完全的方法集會顯示這些對象實現了兩段提交協議,使得每一個對象都有權決定整個事務是提交還是回滾。當一個事務完成時,不論是提交還是回滾,都要通知Synchronization對象。與Resource不同,它并不參與兩段提交協議,所以無權表決一個事務應該提交還是回滾。在事務中它扮演一個被動的角色。 Coordinator是使這一切工作起作用的對象。Resource和Synchronization通過該對象注冊到事務中。Bean不直接訪問這個對象。 Transaction-aware objects that are intended for use with EJB will transparently oBTain a reference to the current transaction's Coordinator to register itself.