org.apache.jackrabbit.core
Class XASessionImpl

java.lang.Object
  extended by org.apache.jackrabbit.commons.AbstractSession
      extended by org.apache.jackrabbit.core.SessionImpl
          extended by org.apache.jackrabbit.core.XASessionImpl
All Implemented Interfaces:
Session, XAResource, JackrabbitSession, XASession, IdentifierResolver, NamePathResolver, NameResolver, PathResolver, NamespaceResolver

public class XASessionImpl
extends SessionImpl
implements XASession, XAResource

Session extension that provides XA support.


Field Summary
static String SYSTEM_PROPERTY_DEFAULT_TRANSACTION_TIMEOUT
          System property specifying the default Transaction Timeout
 
Fields inherited from class org.apache.jackrabbit.core.SessionImpl
attributes, AUTO_FIX_CORRUPTIONS, context, DISABLE_CLUSTER_SYNC_ON_REFRESH, listeners, loginContext, namePathResolver, repositoryContext, subject, userId, versionMgr
 
Fields inherited from interface javax.jcr.Session
ACTION_ADD_NODE, ACTION_READ, ACTION_REMOVE, ACTION_SET_PROPERTY
 
Fields inherited from interface javax.transaction.xa.XAResource
TMENDRSCAN, TMFAIL, TMJOIN, TMNOFLAGS, TMONEPHASE, TMRESUME, TMSTARTRSCAN, TMSUCCESS, TMSUSPEND, XA_OK, XA_RDONLY
 
Constructor Summary
protected XASessionImpl(RepositoryContext repositoryContext, AuthContext loginContext, WorkspaceConfig wspConfig)
          Create a new instance of this class.
protected XASessionImpl(RepositoryContext repositoryContext, Subject subject, WorkspaceConfig wspConfig)
          Create a new instance of this class.
 
Method Summary
 void associate(TransactionContext tx)
          Associate this session with a global transaction.
 void commit(Xid xid, boolean onePhase)
          
protected  InternalVersionManager createVersionManager()
          Create the version manager.
 void end(Xid xid, int flags)
          

If TMSUCCESS is specified, we disassociate this session from the transaction specified.

 void forget(Xid xid)
          

No recovery support yet.

 int getTransactionTimeout()
          
 XAResource getXAResource()
          Retrieves an XAResource object that the transaction manager will use to manage this XASession object's participation in a distributed transaction.
 boolean isSameRM(XAResource xares)
          

Two resources belong to the same resource manager if both connections (i.e. sessions) have the same credentials.

 void logout()
          Invalidates this session and releases all associated resources.
 int prepare(Xid xid)
          
 Xid[] recover(int flags)
          

No recovery support yet.

 void rollback(Xid xid)
          
 boolean setTransactionTimeout(int seconds)
          
 void start(Xid xid, int flags)
          

If TMNOFLAGS is specified, we create a new transaction context and associate it with this resource.

 
Methods inherited from class org.apache.jackrabbit.core.SessionImpl
addListener, addLockToken, autoFixCorruptions, checkFormat, checkPermission, clusterSyncOnRefresh, createAccessManager, createDataStoreGarbageCollector, createItemManager, createObservationManager, createSession, createSessionItemStateManager, finalize, getAccessControlManager, getAccessManager, getAttribute, getAttributeNames, getHierarchyManager, getImportContentHandler, getInternalVersionManager, getItem, getItemManager, getJCRName, getJCRPath, getLocks, getLockTokens, getNode, getNodeById, getNodeByIdentifier, getNodeByUUID, getNodeTypeManager, getPath, getPrefix, getPrincipalManager, getProperty, getQName, getQPath, getQPath, getRepository, getRetentionManager, getRetentionRegistry, getRootNode, getSubject, getURI, getUserID, getUserManager, getValueFactory, getWorkspace, hasCapability, hasPendingChanges, hasPermission, impersonate, isLive, itemExists, move, nodeExists, notifyLoggedOut, notifyLoggingOut, propertyExists, refresh, removeItem, removeListener, removeLockToken, retrieveUserId, save, setAttribute, setNamespacePrefix, toString
 
Methods inherited from class org.apache.jackrabbit.commons.AbstractSession
exportDocumentView, exportDocumentView, exportSystemView, exportSystemView, getNamespacePrefix, getNamespacePrefixes, getNamespaceURI, importXML
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface javax.jcr.Session
addLockToken, checkPermission, exportDocumentView, exportDocumentView, exportSystemView, exportSystemView, getAccessControlManager, getAttribute, getAttributeNames, getImportContentHandler, getItem, getLockTokens, getNamespacePrefix, getNamespacePrefixes, getNamespaceURI, getNode, getNodeByIdentifier, getNodeByUUID, getProperty, getRepository, getRetentionManager, getRootNode, getUserID, getValueFactory, getWorkspace, hasCapability, hasPendingChanges, hasPermission, impersonate, importXML, isLive, itemExists, move, nodeExists, propertyExists, refresh, removeItem, removeLockToken, save, setNamespacePrefix
 

Field Detail

SYSTEM_PROPERTY_DEFAULT_TRANSACTION_TIMEOUT

public static final String SYSTEM_PROPERTY_DEFAULT_TRANSACTION_TIMEOUT
System property specifying the default Transaction Timeout

See Also:
Constant Field Values
Constructor Detail

XASessionImpl

protected XASessionImpl(RepositoryContext repositoryContext,
                        AuthContext loginContext,
                        WorkspaceConfig wspConfig)
                 throws AccessDeniedException,
                        RepositoryException
Create a new instance of this class.

Parameters:
repositoryContext - repository context
loginContext - login context containing authenticated subject
wspConfig - workspace configuration
Throws:
AccessDeniedException - if the subject of the given login context is not granted access to the specified workspace
RepositoryException - if another error occurs

XASessionImpl

protected XASessionImpl(RepositoryContext repositoryContext,
                        Subject subject,
                        WorkspaceConfig wspConfig)
                 throws AccessDeniedException,
                        RepositoryException
Create a new instance of this class.

Parameters:
repositoryContext - repository context
subject - authenticated subject
wspConfig - workspace configuration
Throws:
AccessDeniedException - if the given subject is not granted access to the specified workspace
RepositoryException - if another error occurs
Method Detail

createVersionManager

protected InternalVersionManager createVersionManager()
                                               throws RepositoryException
Create the version manager. If we are not using XA, we may safely use the repository version manager.

Overrides:
createVersionManager in class SessionImpl
Returns:
version manager
Throws:
RepositoryException

getXAResource

public XAResource getXAResource()
Retrieves an XAResource object that the transaction manager will use to manage this XASession object's participation in a distributed transaction.

Specified by:
getXAResource in interface XASession
Returns:
the XAResource object.

getTransactionTimeout

public int getTransactionTimeout()

Specified by:
getTransactionTimeout in interface XAResource

setTransactionTimeout

public boolean setTransactionTimeout(int seconds)

Specified by:
setTransactionTimeout in interface XAResource

isSameRM

public boolean isSameRM(XAResource xares)
                 throws XAException

Two resources belong to the same resource manager if both connections (i.e. sessions) have the same credentials.

Specified by:
isSameRM in interface XAResource
Throws:
XAException

start

public void start(Xid xid,
                  int flags)
           throws XAException

If TMNOFLAGS is specified, we create a new transaction context and associate it with this resource. If TMJOIN is specified, this resource should use the same transaction context as another, already known transaction. If TMRESUME is specified, we should resume work on a transaction context that was suspended earlier. All other flags generate an XAException of type XAER_INVAL

Specified by:
start in interface XAResource
Throws:
XAException

end

public void end(Xid xid,
                int flags)
         throws XAException

If TMSUCCESS is specified, we disassociate this session from the transaction specified. If TMFAIL is specified, we disassociate this session from the transaction specified and mark the transaction rollback only. If TMSUSPEND is specified, we disassociate this session from the transaction specified. All other flags generate an XAException of type XAER_INVAL

It is legal for a transaction association to be suspended and then ended (either with TMSUCCESS or TMFAIL) without having been resumed again.

Specified by:
end in interface XAResource
Throws:
XAException

prepare

public int prepare(Xid xid)
            throws XAException

Specified by:
prepare in interface XAResource
Throws:
XAException

commit

public void commit(Xid xid,
                   boolean onePhase)
            throws XAException

Specified by:
commit in interface XAResource
Throws:
XAException

rollback

public void rollback(Xid xid)
              throws XAException

Specified by:
rollback in interface XAResource
Throws:
XAException

recover

public Xid[] recover(int flags)
              throws XAException

No recovery support yet.

Specified by:
recover in interface XAResource
Throws:
XAException

forget

public void forget(Xid xid)
            throws XAException

No recovery support yet.

Specified by:
forget in interface XAResource
Throws:
XAException

associate

public void associate(TransactionContext tx)
Associate this session with a global transaction. Internally, set the transaction containing all transaction-local objects to be used when performing item retrieval and store.


logout

public void logout()
Invalidates this session and releases all associated resources.

Specified by:
logout in interface Session
Overrides:
logout in class SessionImpl


Copyright © 2004-2010 The Apache Software Foundation. All Rights Reserved.