Package org.springframework.transaction.jta

# Interface TransactionFactory

All Known Implementing Classes:
  `JtaTransactionManager`, `SimpleTransactionFactory`, `WebLogicJtaTransactionManager`

public interface TransactionFactory
Strategy interface for creating JTA `Transaction` objects based on specified transactional characteristics.

The default implementation, `SimpleTransactionFactory`, simply wraps a standard JTA `TransactionManager`. This strategy interface allows for more sophisticated implementations that adapt to vendor-specific JTA extensions.

Since:
  2.5
Author:
  Juergen Hoeller
See Also:
  - `TransactionManager.getTransaction()`
  - `SimpleTransactionFactory`
  - `JtaTransactionManager`

## Method Summary

Modifier and Type
Method
Description
`Transaction`
`createTransaction(String name, int timeout)`
Create an active Transaction object based on the given name and timeout.
`boolean`
`supportsResourceAdapterManagedTransactions()`
Determine whether the underlying transaction manager supports XA transactions managed by a resource adapter (i.e.

## Method Details

### createTransaction

Transaction createTransaction(@Nullable String name, int timeout) throws NotSupportedException, SystemException
Create an active Transaction object based on the given name and timeout.

Parameters:
  `name` - the transaction name (may be `null`)
  `timeout` - the transaction timeout (may be -1 for the default timeout)
Returns:
  the active Transaction object (never `null`)
Throws:
  `NotSupportedException` - if the transaction manager does not support a transaction of the specified type
  `SystemException` - if the transaction manager failed to create the transaction

### supportsResourceAdapterManagedTransactions

boolean supportsResourceAdapterManagedTransactions()
Determine whether the underlying transaction manager supports XA transactions managed by a resource adapter (i.e. without explicit XA resource enlistment).

Typically `false`. Checked by `AbstractMessageEndpointFactory` in order to differentiate between invalid configuration and valid ResourceAdapter-managed transactions.

See Also:
  - `ResourceAdapter.endpointActivation(jakarta.resource.spi.endpoint.MessageEndpointFactory, jakarta.resource.spi.ActivationSpec)`
  - `MessageEndpointFactory.isDeliveryTransacted(java.lang.reflect.Method)`