| 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 |  The parent script supports transaction and has the SUPPORTS transaction attribute. | |
| REQUIRED | ||
| REQUIRES_NEW | ||
| MANDATORY | ||
 Adapters categorized in file operation uses different type of transaction.
Adapters categorized in file operation uses different type of transaction.
 Please refer to File transaction for details.
Please refer to File transaction for details.
 To find out whether an adapter supports transaction or not, please refer to the Transaction section discussed in the document for each adapter.
To find out whether an adapter supports transaction or not, please refer to the Transaction section discussed in the document for each adapter.
 
 When resources are Non-XAResources
When resources are Non-XAResources
 When resources are XAResources
When resources are XAResources
 However, if there is no transaction declared for the script, a transaction is started for each of the file adapter that has its transaction capability enabled.
However, if there is no transaction declared for the script, a transaction is started for each of the file adapter that has its transaction capability enabled.