明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

EJB的事務(wù)處理屬性

[摘要]同事寫的,發(fā)到這里共享一個事務(wù)處理的屬性有:Required,RequiresNew,Mandatory,NotSupported,Supports,Never. 1、Required:當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法,這個方法執(zhí)行客戶端的事務(wù)處理;當(dāng)客戶端沒有啟動一個事務(wù)處理,則E...
同事寫的,發(fā)到這里共享

一個事務(wù)處理的屬性有:Required,RequiresNew,Mandatory,NotSupported,Supports,Never.
1、Required:當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法,這個方法執(zhí)行客戶端的事務(wù)處理;當(dāng)客戶端沒有啟動一個事務(wù)處理,則EJB容器在執(zhí)行這個方法之前啟動一個新的事務(wù)處理.
2、RequiresNew:當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法時,容器管理器做如下操作:
(1) 懸掛客戶端的事務(wù)處理;
(2) 開始一個新的事務(wù)處理;
(3) 調(diào)用方法;
(4) 當(dāng)方法結(jié)束,恢復(fù)客戶端的事物處理.
當(dāng)客戶端沒有啟動一個事務(wù)處理,容器管理器在執(zhí)行這個方法之前啟動一個新的事務(wù)處理.
3、Mandatory: 當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法,這個方法在客戶端的事務(wù)處理范圍內(nèi)被執(zhí)行; 當(dāng)客戶端沒有啟動一個事務(wù)處理,容器管理器將會拋錯(TransactionRequiredException);
4、NotSupported: 當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法,容器管理器在調(diào)用方法之前終止客戶端的事務(wù)處理,當(dāng)方法執(zhí)行完,再恢復(fù)客戶端的事務(wù)處理; 當(dāng)客戶端沒有啟動一個事務(wù)處理,容器管理器在調(diào)用方法時不啟動事務(wù)處理.
5、Supports: 當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法,在運行方法時執(zhí)行客戶端的事務(wù)處理; 當(dāng)客戶端沒有啟動一個事務(wù)處理,容器管理器在調(diào)用方法時不啟動事務(wù)處理.
6、Never: 當(dāng)客戶端運行一個事務(wù)處理并調(diào)用EJB的一個方法,容器管理器將拋出一個錯誤(RemoteException); 當(dāng)客戶端沒有啟動一個事務(wù)處理,容器管理器在調(diào)用方法時不啟動事務(wù)處理.


在jbuilder中,缺省是Required;
第一個ejb可以是 Required,這個ejb調(diào)用的那個ejb方法如果想在一個
事務(wù)上下文中,我覺得可能采用Mandatory,方式比較好。如果它們不在一個事務(wù)上下文中,就會拋錯(TransactionRequiredException),是一個上下文,就沒有問題


相關(guān)文章