This week's book giveaway is in the Android forum.
We're giving away four copies of Head First Android and have David & Dawn Griffiths on-line!
See this thread for details.
Win a copy of Head First Android this week in the Android forum!

Anshul puri

Greenhorn
+ Follow
since Dec 09, 2004
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Anshul puri

Hi All,

I passed the SCBCD exam with 94%. Thanks to all javaranchers and to the authors of the HFEJB book. The only mock exam I took was the HFEJB final exam and scored 85% on it.

Thanks
Anshul
SCJP, SCWCD, SCBCD
16 years ago
The question has to do with the transaction attributes for methods in a CMT bean.

methodA : RequiresNew
methodB : Required
methodC : NotSupported
methodD : RequiresNew

methodA calls methodB. methodB calls methodC and methodD.

1. methodA runs in TxA.

2. Since methodB's transaction attribute is Required and it is called from methodA with an existing transaction context TxA, methodB runs in that existing transaction of TxA.

3. methodC's transaction attribute is NotSupported and it is called from methodB. Since there is an existing transaction TxA for methodB, the context for the caller method (methodB) will be suspended in this case and methodC will run in an "unspecified transaction context" .

4. methodD's transaction attribute is RequiresNew and it is called from methodB. Since there is an existing transaction TxA for methodB, the caller's (methodB) transaction TxA gets suspended, and methodD will run with a new transaction TxD.


So, the correct answer is :
methodA (TxA) --> methodB (TxA)
methodB (TxA) --> methodC (no transaction context)
methodB (TxA) --> methodD (TxD)