org.eclipse.persistence.transaction
Class AbstractSynchronizationListener

java.lang.Object
  extended by org.eclipse.persistence.transaction.AbstractSynchronizationListener
Direct Known Subclasses:
JTASynchronizationListener

public abstract class AbstractSynchronizationListener
extends java.lang.Object

Purpose: Abstract Synchronization Listener class Description: This abstract class is paired with the AbstractTransactionController class. It contains most of the implementation logic to handle callback notifications from an external transaction manager to ensure consistency between the global transaction and the EclipseLink unit of work. It does not assume any particular specification or interface, but can be called by any implementation subclass.

See Also:
AbstractTransactionController

Constructor Summary
AbstractSynchronizationListener()
          INTERNAL:
 
Method Summary
 void afterCompletion(java.lang.Object status)
          INTERNAL: The method performs the logic that should be executed after the transaction has been completed.
 void beforeCompletion()
          INTERNAL: This method performs the logic that occurs at transaction completion time.
 org.eclipse.persistence.internal.sequencing.SequencingCallback getSequencingCallback(DatabaseSession dbSession, org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory sequencingCallbackFactory)
          Return sequencingCallback corresponding to the passed session.
 void handleException(java.lang.RuntimeException exception)
          INTERNAL: Do the appropriate thing for when an exception occurs during SQL issuance.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractSynchronizationListener

public AbstractSynchronizationListener()
INTERNAL:

Method Detail

beforeCompletion

public void beforeCompletion()
INTERNAL: This method performs the logic that occurs at transaction completion time. This includes issuing the SQL, etc. This method executes within the transaction context of the caller of transaction.commit(), or in the case of container-managed transactions, in the context of the method for which the Container started the transaction.


afterCompletion

public void afterCompletion(java.lang.Object status)
INTERNAL: The method performs the logic that should be executed after the transaction has been completed. The status passed in indicates whether the transaction was committed or rolled back. This status flag may be different for different implementations. This method executes without a transaction context.

Parameters:
status - The status code of the transaction completion.

handleException

public void handleException(java.lang.RuntimeException exception)
INTERNAL: Do the appropriate thing for when an exception occurs during SQL issuance. The default thing to do is to simply mark the transaction to be rolled back, for those transaction managers that support this, and rethrow the exception. We hope that the exception will do the trick for those that do not allow marking rollback. This method may optionally be overridden by concrete subclass implementations. Different transaction manager vendors may have different reactions to exceptions that get signalled during the commit phase of synchronization.


getSequencingCallback

public org.eclipse.persistence.internal.sequencing.SequencingCallback getSequencingCallback(DatabaseSession dbSession,
                                                                                            org.eclipse.persistence.internal.sequencing.SequencingCallbackFactory sequencingCallbackFactory)
Return sequencingCallback corresponding to the passed session.