[英]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.