Transaction attributes | Limitations | Propagation behavior | Description |
---|---|---|---|
NEVER |
Indicates that the script cannot be invoked by its enclosing scripts declared to be transactional with the following transaction attributes.
|
The existing transaction of its enclosing script is not propagated. | Indicates that the script should not run within a transactional context.
Its enclosing script should not support transaction. |
NOT_SUPPORTED | No limitations Indicates that the script can run within its enclosing script with any transaction attributes. |
The existing transaction of its enclosing script is not propagated. | Transaction is not supported.
Does not run within an existing transaction regardless of the transaction attribute of the enclosing script. |
SUPPORTS | No limitations Indicates that the script can run within its enclosing script with any transaction attributes. |
|
Depending on the transaction attribute of the enclosing script, the script may or may not support transaction.
The default does not support transaction. This is the default transaction attribute of a script |
REQUIRED | No limitations Indicates that the script can run within its enclosing script with any transaction attributes. |
|
Supports transaction.
The script may run within the existing transaction or start a new transaction depending on the transaction attribute of its enclosing script. |
REQUIRES_NEW | No limitations Indicates that the script can run within its enclosing script with any transaction attributes. |
Always starts a new transaction, regardless of whether there is an existing transaction of its enclosing script or not. | Supports transaction
Always starts a new transaction |
MANDATORY |
Indicates that the script cannot be invoked by its enclosing scripts declared to be transactional with the following transaction attributes.
|
SUPPORTS(The enclosing script does not support a transaction) | Transaction is supported.
The enclosing script must support transaction. |
Transaction attribute | valid or invalid | |
---|---|---|
Child script | Parent script | |
NEVER | NEVER | |
NOT_SUPPORTED | ||
SUPPORTS | ||
REQUIRED | ||
REQUIRES_NEW | ||
MANDATORY | ||
NOT_SUPPORTED | NEVER | |
NOT_SUPPORTED | ||
SUPPORTS | ||
REQUIRED | ||
REQUIRES_NEW | ||
MANDATORY | ||
SUPPORTS | NEVER | |
NOT_SUPPORTED | ||
SUPPORTS | ||
REQUIRED | ||
REQUIRES_NEW | ||
MANDATORY | ||
REQUIRED | NEVER | |
NOT_SUPPORTED | ||
SUPPORTS | ||
REQUIRED | ||
REQUIRES_NEW | ||
MANDATORY | ||
REQUIRES_NEW | NEVER | |
NOT_SUPPORTED | ||
SUPPORTS | ||
REQUIRED | ||
REQUIRES_NEW | ||
MANDATORY | ||
MANDATORY | NEVER | |
NOT_SUPPORTED | ||
SUPPORTS | transaction and has the SUPPORTS transaction attribute. |
|
REQUIRED | ||
REQUIRES_NEW | ||
MANDATORY |