Package org.alfresco.repo.transaction
Class TransactionServiceImpl
java.lang.Object
org.alfresco.repo.transaction.TransactionServiceImpl
- All Implemented Interfaces:
TransactionService
Default implementation of Transaction Service.
Default retry behaviour: see RetryingTransactionHelper()
- Author:
- David Caruana
-
Constructor Summary
Constructors -
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.Creates a new helper instance.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.voidsetAllowWrite(boolean allowWrite) Set the read-only mode for all generated transactions.voidsetAllowWrite(boolean allowWrite, QName nameOfVeto) Set the read-only mode for all generated transactions.voidsetMaxRetries(int maxRetries) voidsetMaxRetryWaitMs(int maxRetryWaitMs) voidsetMinRetryWaitMs(int minRetryWaitMs) voidsetRetryWaitIncrementMs(int retryWaitIncrementMs) voidsetTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager) Set the transaction manager to use
-
Constructor Details
-
TransactionServiceImpl
public TransactionServiceImpl()Construct defaults
-
-
Method Details
-
setTransactionManager
public void setTransactionManager(org.springframework.transaction.PlatformTransactionManager transactionManager) Set the transaction manager to use -
getAllowWrite
public boolean getAllowWrite()Determine if the repository has been put into read only mode. This is independent of the current user.- Specified by:
getAllowWritein interfaceTransactionService- Returns:
- true if the repository is allowed to perform write operations
-
setAllowWrite
public void setAllowWrite(boolean allowWrite) Set the read-only mode for all generated transactions.Intended for use by spring configuration only. Alfresco code should call the method which specifies a veto name.
- Parameters:
allowWrite- false if all transactions must be read-only
-
setAllowWrite
Set the read-only mode for all generated transactions.By default read/write transactions are allowed however vetos may be applied that make the transactions read only.
Prevent writes by calling allowWrite with false and a given veto name.
The veto is removed by calling allowWrite with true for the given veto name when all vetos are removed then read/write transactions are allowed.
- Parameters:
allowWrite- false if all transactions must be read-onlynameOfVeto- the name of the veto
-
isReadOnly
public boolean isReadOnly()Determine if ALL user transactions will be read-only. The 'System' user is always allowed to write.- Specified by:
isReadOnlyin interfaceTransactionService- Returns:
- Returns true if all transactions are read-only AND the current user is not the 'System' user.
-
setMaxRetries
public void setMaxRetries(int maxRetries) -
setMinRetryWaitMs
public void setMinRetryWaitMs(int minRetryWaitMs) -
setMaxRetryWaitMs
public void setMaxRetryWaitMs(int maxRetryWaitMs) -
setRetryWaitIncrementMs
public void setRetryWaitIncrementMs(int retryWaitIncrementMs) -
getUserTransaction
public jakarta.transaction.UserTransaction getUserTransaction()Description copied from interface:TransactionServiceGets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Specified by:
getUserTransactionin interfaceTransactionService- Returns:
- the user transaction
- See Also:
-
TransactionDefinition.PROPAGATION_REQUIRED
-
getUserTransaction
public jakarta.transaction.UserTransaction getUserTransaction(boolean readOnly) Description copied from interface:TransactionServiceGets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Specified by:
getUserTransactionin interfaceTransactionService- 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
- See Also:
-
TransactionDefinition.PROPAGATION_REQUIRED
-
getUserTransaction
public jakarta.transaction.UserTransaction getUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly) Description copied from interface:TransactionServiceGets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.- Specified by:
getUserTransactionin interfaceTransactionService- 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
- See Also:
-
TransactionDefinition.PROPAGATION_REQUIRED
-
getNonPropagatingUserTransaction
public jakarta.transaction.UserTransaction getNonPropagatingUserTransaction()Description copied from interface:TransactionServiceGets 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.- Specified by:
getNonPropagatingUserTransactionin interfaceTransactionService- Returns:
- Returns a non-propagating user transaction
- See Also:
-
TransactionDefinition.PROPAGATION_REQUIRES_NEW
-
getNonPropagatingUserTransaction
public jakarta.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly) Description copied from interface:TransactionServiceGets 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.- Specified by:
getNonPropagatingUserTransactionin interfaceTransactionService- 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
- See Also:
-
TransactionDefinition.PROPAGATION_REQUIRES_NEW
-
getNonPropagatingUserTransaction
public jakarta.transaction.UserTransaction getNonPropagatingUserTransaction(boolean readOnly, boolean ignoreSystemReadOnly) Description copied from interface:TransactionServiceGets 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.- Specified by:
getNonPropagatingUserTransactionin interfaceTransactionService- 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
- See Also:
-
TransactionDefinition.PROPAGATION_REQUIRES_NEW
-
getRetryingTransactionHelper
Creates a new helper instance. It can be reused or customized by the client code: each instance is new and initialized afresh.- Specified by:
getRetryingTransactionHelperin interfaceTransactionService- Returns:
- Returns a helper object that executes units of work transactionally. The helper can be reused or altered as required.
-