2010-01-28 100 views
1

我讀到EJB 2.x規範不支持嵌套事務。 但邏輯上認爲我們可以調用一個EJB方法,該方法具有來自另一個EJB方法的REQUIRES_NEW txn屬性,這個方法實際上啓動了一個事務 這不是一個有效的情況。如果有效不是所謂的嵌套事務。J2EE 1.4中的嵌套事務支持

請指點一下,如果我在這裏丟失任何東西。

回答

1

REQUIRES_NEW的傳播是指:

創建一個新的事務處理,如果存在掛起 當前事務。

因此,交易將不會嵌套 - 第一個交易暫停,分流,並開始一個新的,不相關的交易。

您並不需要自己嵌套事務,只需要確保每次通過事務邊界時,都繼承現有事務(或者啓動一個新事務)。默認傳播PROPAGATION_REQUIRED通常足夠好。有趣的是,JDBC 3.0的確引入了嵌套事務的概念,但EBJ規範還沒有趕上。