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 javax.transaction.UserTransaction is not able to provide the full set of status codes available on the javax.transaction.Status class.

    Author:
    David Caruana
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean getAllowWrite()
      Determine if the repository has been put into read only mode.
      javax.transaction.UserTransaction getNonPropagatingUserTransaction()
      Gets a user transaction that ensures a new transaction is created.
      javax.transaction.UserTransaction getNonPropagatingUserTransaction​(boolean readOnly)
      Gets a user transaction that ensures a new transaction is created.
      javax.transaction.UserTransaction getNonPropagatingUserTransaction​(boolean readOnly, boolean ignoreSystemReadOnly)
      Gets a user transaction that ensures a new transaction is created.
      RetryingTransactionHelper getRetryingTransactionHelper()
      Get the standard instance of the helper object that supports transaction retrying.
      javax.transaction.UserTransaction getUserTransaction()
      Gets a user transaction that supports transaction propagation.
      javax.transaction.UserTransaction getUserTransaction​(boolean readOnly)
      Gets a user transaction that supports transaction propagation.
      javax.transaction.UserTransaction getUserTransaction​(boolean readOnly, boolean ignoreSystemReadOnly)
      Gets a user transaction that supports transaction propagation.
      boolean isReadOnly()
      Determine if ALL user transactions will be read-only.
    • Method Detail

      • 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

        @NotAuditable
        boolean 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

        @NotAuditable
        javax.transaction.UserTransaction getUserTransaction()
        Gets a user transaction that supports transaction propagation. This is like the EJB REQUIRED transaction attribute.
        Returns:
        the user transaction
      • getUserTransaction

        @NotAuditable
        javax.transaction.UserTransaction getUserTransaction​(boolean readOnly)
        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
        javax.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

        @NotAuditable
        javax.transaction.UserTransaction 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
        javax.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
        javax.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

        @NotAuditable
        RetryingTransactionHelper 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.