Title: The Aries Transaction Control Service
Notice:    Licensed to the Apache Software Foundation (ASF) under one
           or more contributor license agreements.  See the NOTICE file
           distributed with this work for additional information
           regarding copyright ownership.  The ASF licenses this file
           to you under the Apache License, Version 2.0 (the
           "License"); you may not use this file except in compliance
           with the License.  You may obtain a copy of the License at
           .
             http://www.apache.org/licenses/LICENSE-2.0
           .
           Unless required by applicable law or agreed to in writing,
           software distributed under the License is distributed on an
           "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
           KIND, either express or implied.  See the License for the
           specific language governing permissions and limitations
           under the License.

#The Transaction Control service

If you're new to the Transaction Control service then we suggest that you read the [Quick Start Page][1]
first.

## Why use the Transaction Control service?

Simply put the Transaction Control service makes resource access easy! There's no need to worry about
transaction lifecycle or closing connections, and there's built in support for useful features like 
connection pooling.

###The Aries Transaction Control implementations

These modules provide implementations of the TransactionControl service

* [The Local Transaction Control Service][2]
* [The XA Transaction Control Service and Last Participant support][3]

###Configuring JDBC access

These modules provide portable JDBC resource providers with built in connection pooling and 
transactional resource access

* [JDBC with Local Transactions][4]
* [JDBC with XA Transactions][5]

###Configuring JPA access

These modules provide portable JPA resource providers for transactional resource access

* [JPA with Local Transactions][6]
* [JPA with XA Transactions][7]

###Advanced topics

* [Using the Coordinator to optimise Transactions][8]
* [Making use of the Last Resource Gambit][9]
* [Custom Resource Providers][10]
* [Advanced Scope control][11]
* [Exception Management][12]
* [Migrating from Spring and Java EE Declarative Transactions][13]


  [1]: quickstart.html
  [2]: localTransactions.html
  [3]: xaTransactions
  [4]: localJDBC.html
  [5]: xaJDBC.html
  [6]: localJPA.html
  [7]: xaJPA.html
  [8]: coordinator.html
  [9]: lastResourceGambit.html
  [10]: advancedResourceProviders.html
  [11]: advancedScopes.html
  [12]: exceptionManagement.html
  [13]: spring-tx.html