Package org.alfresco.service.transaction
Interface TransactionService
- All Known Implementing Classes:
DummyTransactionService,TransactionServiceImpl
public interface TransactionService
Contract for retrieving access to a user transaction.
Note that the implementation of the jakarta.transaction.UserTransaction is not able to provide the full set of status codes available on the jakarta.transaction.Status class.
- Author:
- David Caruana
-
Method Summary
Modifier and TypeMethodDescriptionbooleanDetermine if the repository has been put into read only mode.jakarta.transaction.UserTransactionGets a user transaction that ensures a new transaction is created.jakarta.transaction.UserTransactiongetNonPropagatingUserTransaction(boolean readOnly) Gets a user transaction that ensures a new transaction is created.jakarta.transaction.UserTransactiongetNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly) Gets a user transaction that ensures a new transaction is created.Get the standard instance of the helper object that supports transaction retrying.jakarta.transaction.UserTransactionGets a user transaction that supports transaction propagation.jakarta.transaction.UserTransactiongetUserTransaction(boolean readOnly) Gets a user transaction that supports transaction propagation.jakarta.transaction.UserTransactiongetUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly) Gets a user transaction that supports transaction propagation.booleanDetermine if ALL user transactions will be read-only.
-
Method Details
-
getAllowWrite
boolean getAllowWrite()Determine if the repository has been put into read only mode. This is independent of the current user.- Returns:
- true if the repository is allowed to perform write operations
-
isReadOnly
Determine if ALL user transactions will be read-only. The 'System' user is always allowed to write.- Returns:
- Returns true if all transactions are read-only AND the current user is not the 'System' user.
-
getUserTransaction
Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Returns:
- the user transaction
-
getUserTransaction
Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise. Note that it is not always possible to force a write transaction if the system is in read-only mode.- Returns:
- the user transaction
-
getUserTransaction
@NotAuditable jakarta.transaction.UserTransaction getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly) Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise.ignoreSystemReadOnly- true to force the read-only flag to be respected regardless of the system read-only mode.- Returns:
- the user transaction
-
getNonPropagatingUserTransaction
Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.- Returns:
- Returns a non-propagating user transaction
-
getNonPropagatingUserTransaction
@NotAuditable jakarta.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly) Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise. Note that it is not always possible to force a write transaction if the system is in read-only mode.- Returns:
- Returns a non-propagating user transaction
-
getNonPropagatingUserTransaction
@NotAuditable jakarta.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly) Gets a user transaction that ensures a new transaction is created. Any enclosing transaction is not propagated. This is like the EJB REQUIRES_NEW transaction attribute - when the transaction is started, the current transaction will be suspended and a new one started.- Parameters:
readOnly- Set true for a READONLY transaction instance, false otherwise.ignoreSystemReadOnly- true to force the read-only flag to be respected regardless of the system read-only mode.- Returns:
- Returns a non-propagating user transaction
-
getRetryingTransactionHelper
Get the standard instance of the helper object that supports transaction retrying.- Returns:
- Returns a helper object that executes units of work transactionally. The helper can be reused or altered as required.
-