I have some questions about transaction propagation between the client and
EJB. Can someone clarify the following scenarios? Assume the client is a Web tier client like
servlet in all the scenarios described.
1) Stateless Session Bean CMP
Scenario 1:
Client starts transaction
Invokes bean method with Required transaction attribute
Client ends transaction
Scenario 2:
Client starts transaction
Invokes bean method with NotSupported or no transaction attribute
Client ends transaction
Question: Is the bean method part of client transaction in the above scenarios?
2) Stateless Session Bean BMP
Scenario 1:
Client starts transaction
Invokes bean method with user transaction in it
Client ends transaction
Scenario 2:
Client starts transaction
Invokes bean method without any user transaction in it.
Client ends transaction
Question: Is the bean method part of client transaction in scenario 2?
3) Stateful Session Bean CMP
Scenario 1:
Client starts transaction
Invokes bean method with Required transaction attribute
Client ends transaction
Question: Is the bean method part of client transaction in the above scenarios? For stateful session bean, the container transaction ends when the bean method finishes. When does it end in the above scenario?
Scenario 2:
Client starts transaction
Invokes bean method with NotSupported or no transaction attribute
Client ends transaction
Question: Is the bean method part of client transaction in the above scenario?
4) Stateless Session Bean BMP
Scenario 1:
Client starts transaction
Invokes bean method1 that starts user transaction
Invokes bean method2 that ends user transaction
Client ends transaction
Scenario 2:
Client starts transaction
Invokes bean method1 which has no user transaction
Client ends transaction
Question: What is the transaction propagation in the above 2 scenarios?