Package org.objectweb.transaction.api.transaction

Specification of the Transaction API.

See:
          Description

Interface Summary
TransactionActivationFeature Defines the operation allowed when activating transactions.
TransactionHolderFeature This interface allows to access to the associated Transaction.
TransactionInterruptionFeature Feature dealing with the interruption of a transaction.
TransactionState Description of the Transaction State
TransactionStatus Description of the status of a transaction
TransactionStatusFeature Feature providing an access to the current status value
 

Exception Summary
InvalidTransactionStatusException Exception raised when the TransactionStatus is conflictual with the current transaction.
 

Package org.objectweb.transaction.api.transaction Description

Specification of the Transaction API.

Table of contents

  1. About Transactions
  2. Advanced Features
  3. Advanced Models
  4. Example

This part includes only the interfaces dealing with the purpose of transaction. This means mainly that only Atomicity properties are considered in this part.

About Transactions

A transaction is an unity of cohesion. It groups a set of operations which should not be executed independently. Basically if we restrict the study to the notion of transaction, a transaction ensures the Atomicity of a set of operations. This means that the transaction covers the execution of treatments and then decides according to a particular policy the final decision to apply.

Because of Atomicity, a transaction could define only two ends which are:

From another point of view, it is possible to see a transaction as an activity grouping a set of actions whose are definitively validated at the end of the activity.

Advanced Features

Sometimes, the basic features provided by a transaction (e.g. Activation features) are limited when used in some particular contexts.

Suspend/Resume Feature

Split/Join Feature

Advanced Models

Nested Transactions

Open Nested Transactions

Long-lived Transactions

Example

This example provides a set of features which are described in the document. We could see that the transaction component is obtained by an assembly of primitive components which are dedicated to particular features (activation, interruption, ...). Primitive components could require to be binded to features or states provided by other components (internal or external to the transaction component).