Class ResourceHolderSupport

java.lang.Object
org.springframework.transaction.support.ResourceHolderSupport
All Implemented Interfaces:
ResourceHolder
Direct Known Subclasses:
ConnectionHolder, ConnectionHolder, EntityManagerHolder, JmsResourceHolder

public abstract class ResourceHolderSupport extends Object implements ResourceHolder
Convenient base class for resource holders.

Features rollback-only support for participating transactions. Can expire after a certain number of seconds or milliseconds in order to determine a transactional timeout.

Since:
02.02.2004
Author:
Juergen Hoeller
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Clear the transactional state of this resource holder.
    Return the expiration deadline of this object.
    long
    Return the time to live for this object in milliseconds.
    int
    Return the time to live for this object in seconds.
    boolean
    Return whether this object has an associated timeout.
    boolean
    Return whether there are still open references to this holder.
    boolean
    Return whether the resource transaction is marked as rollback-only.
    boolean
    Return whether the resource is synchronized with a transaction.
    boolean
    Determine whether this holder is considered as 'void', i.e.
    void
    Decrease the reference count by one because the holder has been released (i.e.
    void
    Increase the reference count by one because the holder has been requested (i.e.
    void
    Reset this resource holder - transactional state as well as reference count.
    void
    Reset the rollback-only status for this resource transaction.
    void
    Mark the resource transaction as rollback-only.
    void
    setSynchronizedWithTransaction(boolean synchronizedWithTransaction)
    Mark the resource as synchronized with a transaction.
    void
    setTimeoutInMillis(long millis)
    Set the timeout for this object in milliseconds.
    void
    setTimeoutInSeconds(int seconds)
    Set the timeout for this object in seconds.
    void
    Notify this holder that it has been unbound from transaction synchronization.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ResourceHolderSupport

      public ResourceHolderSupport()
  • Method Details

    • setSynchronizedWithTransaction

      public void setSynchronizedWithTransaction(boolean synchronizedWithTransaction)
      Mark the resource as synchronized with a transaction.
    • isSynchronizedWithTransaction

      public boolean isSynchronizedWithTransaction()
      Return whether the resource is synchronized with a transaction.
    • setRollbackOnly

      public void setRollbackOnly()
      Mark the resource transaction as rollback-only.
    • resetRollbackOnly

      public void resetRollbackOnly()
      Reset the rollback-only status for this resource transaction.

      Only really intended to be called after custom rollback steps which keep the original resource in action, e.g. in case of a savepoint.

      Since:
      5.0
      See Also:
    • isRollbackOnly

      public boolean isRollbackOnly()
      Return whether the resource transaction is marked as rollback-only.
    • setTimeoutInSeconds

      public void setTimeoutInSeconds(int seconds)
      Set the timeout for this object in seconds.
      Parameters:
      seconds - number of seconds until expiration
    • setTimeoutInMillis

      public void setTimeoutInMillis(long millis)
      Set the timeout for this object in milliseconds.
      Parameters:
      millis - number of milliseconds until expiration
    • hasTimeout

      public boolean hasTimeout()
      Return whether this object has an associated timeout.
    • getDeadline

      @Nullable public Date getDeadline()
      Return the expiration deadline of this object.
      Returns:
      the deadline as Date object
    • getTimeToLiveInSeconds

      public int getTimeToLiveInSeconds()
      Return the time to live for this object in seconds. Rounds up eagerly, e.g. 9.00001 still to 10.
      Returns:
      number of seconds until expiration
      Throws:
      TransactionTimedOutException - if the deadline has already been reached
    • getTimeToLiveInMillis

      public long getTimeToLiveInMillis() throws TransactionTimedOutException
      Return the time to live for this object in milliseconds.
      Returns:
      number of milliseconds until expiration
      Throws:
      TransactionTimedOutException - if the deadline has already been reached
    • requested

      public void requested()
      Increase the reference count by one because the holder has been requested (i.e. someone requested the resource held by it).
    • released

      public void released()
      Decrease the reference count by one because the holder has been released (i.e. someone released the resource held by it).
    • isOpen

      public boolean isOpen()
      Return whether there are still open references to this holder.
    • clear

      public void clear()
      Clear the transactional state of this resource holder.
    • reset

      public void reset()
      Reset this resource holder - transactional state as well as reference count.
      Specified by:
      reset in interface ResourceHolder
    • unbound

      public void unbound()
      Description copied from interface: ResourceHolder
      Notify this holder that it has been unbound from transaction synchronization.
      Specified by:
      unbound in interface ResourceHolder
    • isVoid

      public boolean isVoid()
      Description copied from interface: ResourceHolder
      Determine whether this holder is considered as 'void', i.e. as a leftover from a previous thread.
      Specified by:
      isVoid in interface ResourceHolder