簡體   English   中英

具有CMT的Ejb3無狀態bean

[英]Ejb3 stateless bean with CMT

可能有這樣的事情嗎? 帶有偽代碼的線程中的客戶端代碼:

transaction.begin();
ejb.method();
transaction.commit();

method()屬於EJB3無狀態會話Bean,其注釋為TransactionAttributeType.REQUIRED method()可以設置setRollbackOnly()

如果ejb方法設置了setRollbackOnly(),在嘗試提交事務之前是否應該進行一些檢查?

謝謝!

您還可以將被調用bean(方法)上的事務屬性設置為TransactionAttributeType.REQUIRES_NEW以在您的方法上強制執行新事務。

順便說一句:如果您在方法上指定了交易屬性,請確保調用代理 方法 即,從同一 ejb內調用具有特定事務屬性設置的ejb的方法將無法按預期工作...

SLSB的默認設置是您描述的Tx語義。

通過指定EjbContext.setRollbackOnly()可以進行手動回滾-這告訴Contaner(CMT中的“ C”)它不應提交但應回扣事務。

如果您想完全自己設置事務,則仍可以將調用SLSB方法標記為NotSupported,然后在內部手動打開一個Tx,您可以將其轉發給其他SLSB調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM