# Class ExternalTransaction

java.lang.Object
org.apache.cayenne.tx.BaseTransaction
org.apache.cayenne.tx.ExternalTransaction

All Implemented Interfaces:
  `Transaction`

public class ExternalTransaction extends BaseTransaction
Represents a container-managed transaction.

Since:
  4.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected SQLLogger`
  `sqlLogger`

  ### Fields inherited from class BaseTransaction

  `connections, defaultIsolationLevel, descriptor, listeners, status, STATUS_ACTIVE, STATUS_COMMITTED, STATUS_COMMITTING, STATUS_MARKED_ROLLEDBACK, STATUS_NO_TRANSACTION, STATUS_ROLLEDBACK, STATUS_ROLLING_BACK`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExternalTransaction(SQLLogger sqlLogger)`
  `ExternalTransaction(SQLLogger sqlLogger, TransactionDescriptor descriptor)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isExternal()`
  Is this transaction managed by external transaction manager
  `protected void`
  `processCommit()`
  `protected void`
  `processRollback()`

  ### Methods inherited from class BaseTransaction

  `addConnection, addListener, begin, bindThreadTransaction, close, commit, connectionAdded, getConnections, getExistingConnection, getOrCreateConnection, getThreadTransaction, isRollbackOnly, rollback, setRollbackOnly`

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### sqlLogger

    protected SQLLogger sqlLogger

- ## Constructor Details

  - ### ExternalTransaction

    public ExternalTransaction(SQLLogger sqlLogger)

  - ### ExternalTransaction

    public ExternalTransaction(SQLLogger sqlLogger, TransactionDescriptor descriptor)
    Since:
      4.1

- ## Method Details

  - ### processCommit

    protected void processCommit()
    Specified by:
      `processCommit` in class `BaseTransaction`

  - ### processRollback

    protected void processRollback()
    Specified by:
      `processRollback` in class `BaseTransaction`

  - ### isExternal

    public boolean isExternal()
    Description copied from interface: `Transaction`
    Is this transaction managed by external transaction manager