EclipseLink 2.3.2, build 'v20111125-r10461' API Reference

org.eclipse.persistence.sessions.remote
Class DistributedSession

java.lang.Object
  extended by org.eclipse.persistence.internal.sessions.AbstractSession
      extended by org.eclipse.persistence.sessions.remote.DistributedSession
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, CommandProcessor, Session
Direct Known Subclasses:
RemoteSession

public abstract class DistributedSession
extends org.eclipse.persistence.internal.sessions.AbstractSession

Purpose: Super class to all remote client session's.

See Also:
Serialized Form

Field Summary
protected  org.eclipse.persistence.internal.sessions.remote.RemoteConnection remoteConnection
           
 
Fields inherited from class org.eclipse.persistence.internal.sessions.AbstractSession
accessors, activeCommandThreads, broker, commandManager, commitManager, defaultReferenceMode, deferredEvents, descriptors, eventManager, exceptionHandler, externalTransactionController, identityMapAccessor, integrityChecker, isExecutingEvents, isFinalizersEnabled, isInBroker, isInProfile, isLoggingOff, isSynchronized, jpaQueries, lastDescriptorAccessed, logSessionString, name, numberOfActiveUnitsOfWork, objectsLockedForClone, partitioningPolicy, pessimisticLockTimeoutDefault, platform, profiler, project, properties, queries, queryTimeoutDefault, sessionLog, shouldCheckWriteLock, shouldPropagateChanges, staticMetamodelClasses, transactionMutex, wasJTSTransactionInternallyStarted
 
Fields inherited from interface org.eclipse.persistence.sessions.coordination.CommandProcessor
LOG_DEBUG, LOG_ERROR, LOG_INFO, LOG_WARNING
 
Constructor Summary
protected DistributedSession(int nothing)
          INTERNAL: Create a blank session, used for proxy session.
  DistributedSession(org.eclipse.persistence.internal.sessions.remote.RemoteConnection remoteConnection)
          PUBLIC: Creates a DistributedSession.
 
Method Summary
abstract  org.eclipse.persistence.internal.sessions.UnitOfWorkImpl acquireUnitOfWork()
          PUBLIC: Return a unit of work for this session.
 void beginTransaction()
          PUBLIC: Start a transaction on the server.
 void commitTransaction()
          PUBLIC: Commit a transaction on the server.
 org.eclipse.persistence.internal.sessions.remote.RemoteCursoredStream cursorSelectObjects(CursoredStreamPolicy policy)
          INTERNAL: Return remote cursor stream.
 org.eclipse.persistence.internal.sessions.remote.RemoteScrollableCursor cursorSelectObjects(ScrollableCursorPolicy policy)
          INTERNAL: Return remote scrollable cursor
abstract  java.lang.Object executeQuery(DatabaseQuery query)
          Execute the database query.
 java.lang.Object executeQuery(DatabaseQuery query, org.eclipse.persistence.internal.sessions.AbstractRecord row)
          INTERNAL: Execute the database query.
 java.lang.Object executeQuery(java.lang.String queryName)
          PUBLIC: Execute the pre-defined query by name and return the result.
 java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass)
          PUBLIC: Execute the pre-defined query by name and return the result.
 java.lang.Object executeQuery(java.lang.String queryName, java.lang.Class domainClass, java.util.Vector argumentValues)
          PUBLIC: Execute the pre-defined query by name and return the result.
 java.lang.Object executeQuery(java.lang.String queryName, java.util.Vector argumentValues)
          PUBLIC: Execute the pre-defined query by name and return the result.
 java.util.Vector getDefaultReadOnlyClasses()
          INTERNAL: CR#2751 Returns the set of read-only classes for the receiver.
 ClassDescriptor getDescriptor(java.lang.Class domainClass)
          INTERNAL: Return the table descriptor specified for the class.
 ClassDescriptor getDescriptorCorrespondingTo(ClassDescriptor descriptor)
          INTERNAL: Return the descriptor.
abstract  java.lang.Object getObjectCorrespondingTo(java.lang.Object serverSideDomainObject, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query)
          INTERNAL: Return the corresponding objects from the remote session for the objects read from the server.
abstract  java.lang.Object getObjectsCorrespondingToAll(java.lang.Object serverSideDomainObjects, java.util.Map objectDescriptors, java.util.Map processedObjects, ObjectLevelReadQuery query, org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
          INTERNAL: Return the corresponding objects from the remote session for the objects read from the server.
 org.eclipse.persistence.internal.sessions.remote.RemoteConnection getRemoteConnection()
          INTERNAL: Return the remote connection.
 boolean hasCorrespondingDescriptor(ClassDescriptor descriptor)
          INTERNAL: Checks if the descriptor exists or not.
 void initializeIdentityMapAccessor()
          INTERNAL: Set up the IdentityMapManager.
abstract  java.lang.Object instantiateRemoteValueHolderOnServer(org.eclipse.persistence.internal.sessions.remote.RemoteValueHolder remoteValueHolder)
          INTERNAL: This will instantiate value holder on the server.
 boolean isConnected()
          PUBLIC: Return if this session is connected to the server.
 boolean isDistributedSession()
          INTERNAL: Return if this session is a distributed session.
 boolean isRemoteSession()
          INTERNAL: Return if this session is a remote session.
 void privilegedAddDescriptor(ClassDescriptor descriptor)
          INTERNAL: You cannot add descriptors to a remote session.
 void release()
          PUBLIC: Logout the session, close the remote connection and release the hold resources
 void rollbackTransaction()
          PUBLIC: Rollback a transaction on the server.
protected  void setRemoteConnection(org.eclipse.persistence.internal.sessions.remote.RemoteConnection remoteConnection)
          INTERNAL: Set the remote connection.
 java.lang.String toString()
          PUBLIC: Avoid printing the accessor and platform.
 
Methods inherited from class org.eclipse.persistence.internal.sessions.AbstractSession
acquireHistoricalSession, acquireNonSynchronizedUnitOfWork, acquireNonSynchronizedUnitOfWork, acquireUnitOfWork, addAlias, addJPAQuery, addQuery, addQuery, addStaticMetamodelClass, basicBeginTransaction, basicBeginTransaction, basicCommitTransaction, basicExecuteCall, basicRollbackTransaction, beginExternalTransaction, checkAndRefreshInvalidObject, checkHierarchyForDescriptor, clearDescriptors, clearIntegrityChecker, clearLastDescriptorAccessed, clearProfile, clone, commitExternalTransaction, compareObjects, compareObjectsDontMatch, config, containsQuery, copy, copy, copyDescriptorNamedQueries, copyDescriptorsFromProject, copyInternal, copyObject, copyObject, copyReadOnlyClasses, createCloneQueryValueHolder, createCloneTransformationValueHolder, createProtectedInstanceFromCachedData, deferEvent, deleteAllObjects, deleteAllObjects, deleteObject, doesObjectExist, dontLogMessages, endOperationProfile, endOperationProfile, executeCall, executeDeferredEvents, executeNonSelectingCall, executeNonSelectingSQL, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeSelectingCall, executeSQL, fine, finer, finest, getAccessor, getAccessors, getAccessors, getActiveCommandThreads, getActiveSession, getActiveUnitOfWork, getAliasDescriptors, getAllQueries, getAsOfClause, getBroker, getCacheKeyFromTargetSessionForMerge, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getCommandManager, getCommitManager, getDatasourceLogin, getDatasourcePlatform, getDefaultReferenceMode, getDescriptor, getDescriptorForAlias, getDescriptors, getEventManager, getExceptionHandler, getExceptionHandlerClass, getExecutionSession, getExternalTransactionController, getId, getIdentityMapAccessor, getIdentityMapAccessorInstance, getIntegrityChecker, getJPAQueries, getLoader, getLog, getLogin, getLogLevel, getLogLevel, getLogSessionString, getName, getNextQueryId, getNextSequenceNumberValue, getNumberOfActiveUnitsOfWork, getParent, getParentIdentityMapSession, getParentIdentityMapSession, getParentIdentityMapSession, getPartitioningPolicy, getPessimisticLockTimeoutDefault, getPlatform, getPlatform, getProfiler, getProject, getProperties, getProperty, getQueries, getQuery, getQuery, getQuery, getQuery, getQueryTimeoutDefault, getRootSession, getSequencing, getServerPlatform, getSessionForClass, getSessionForName, getSessionLog, getSessionTypeString, getStaticMetamodelClass, getTransactionMutex, handleException, handleSevere, hasBroker, hasCommitManager, hasDescriptor, hasEventManager, hasExceptionHandler, hasExternalTransactionController, hasProperties, incrementProfile, incrementProfile, info, insertObject, internalExecuteQuery, isBroker, isClassReadOnly, isClassReadOnly, isClientSession, isConsideredInvalid, isDatabaseSession, isExclusiveConnectionRequired, isExclusiveIsolatedClientSession, isFinalizersEnabled, isHistoricalSession, isInBroker, isInProfile, isInTransaction, isIsolatedClientSession, isLoggingOff, isProtectedSession, isRemoteUnitOfWork, isServerSession, isSessionBroker, isSynchronized, isUnitOfWork, keyFromObject, keyFromObject, load, log, log, log, log, log, log, log, log, log, log, logMessage, logMessage, logThrowable, postAcquireConnection, prepareDatabaseQuery, preReleaseConnection, priviledgedExecuteNonSelectingCall, priviledgedExecuteSelectingCall, processCommand, processJPAQueries, readAllObjects, readAllObjects, readAllObjects, readAllObjects, readObject, readObject, readObject, readObject, readObject, refreshAndLockObject, refreshAndLockObject, refreshObject, registerFinalizer, releaseJTSConnection, releaseReadConnection, releaseUnitOfWork, removeProperty, removeQuery, removeQuery, retrieveCacheKey, retryQuery, retryTransaction, rollbackExternalTransaction, setAccessor, setBroker, setCommandManager, setCommitManager, setDatasourceLogin, setDefaultReferenceMode, setEventManager, setExceptionHandler, setExternalTransactionController, setIntegrityChecker, setIsFinalizersEnabled, setIsInBroker, setIsInProfile, setLog, setLogin, setLogin, setLogLevel, setName, setNumberOfActiveUnitsOfWork, setPartitioningPolicy, setPessimisticLockTimeoutDefault, setProfiler, setProject, setProperties, setProperty, setQueries, setQueryTimeoutDefault, setSessionLog, setShouldPropagateChanges, setSynchronized, setTransactionMutex, setWasJTSTransactionInternallyStarted, severe, shouldDisplayData, shouldLog, shouldLogMessages, shouldLogMessages, shouldPropagateChanges, startOperationProfile, startOperationProfile, unwrapObject, updateObject, updateProfile, validateCache, validateQuery, verifyDelete, warning, wasJTSTransactionInternallyStarted, wrapObject, writeAllObjectsWithChangeSet, writeObject, writesCompleted
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

remoteConnection

protected transient org.eclipse.persistence.internal.sessions.remote.RemoteConnection remoteConnection
Constructor Detail

DistributedSession

protected DistributedSession(int nothing)
INTERNAL: Create a blank session, used for proxy session.


DistributedSession

public DistributedSession(org.eclipse.persistence.internal.sessions.remote.RemoteConnection remoteConnection)
PUBLIC: Creates a DistributedSession.

Parameters:
remoteConnection - remote session requires a remote connection. This must be accessed remotely from the client through RMI or CORBA.
Method Detail

acquireUnitOfWork

public abstract org.eclipse.persistence.internal.sessions.UnitOfWorkImpl acquireUnitOfWork()
PUBLIC: Return a unit of work for this session. The unit of work is an object level transaction that allows a group of changes to be applied as a unit.

Specified by:
acquireUnitOfWork in interface Session
Overrides:
acquireUnitOfWork in class org.eclipse.persistence.internal.sessions.AbstractSession
See Also:
UnitOfWorkImpl

beginTransaction

public void beginTransaction()
PUBLIC: Start a transaction on the server. A unit of work should normally be used instead of transactions for the remote session.

Overrides:
beginTransaction in class org.eclipse.persistence.internal.sessions.AbstractSession

commitTransaction

public void commitTransaction()
PUBLIC: Commit a transaction on the server. A unit of work should normally be used instead of transactions for the remote session.

Overrides:
commitTransaction in class org.eclipse.persistence.internal.sessions.AbstractSession

cursorSelectObjects

public org.eclipse.persistence.internal.sessions.remote.RemoteCursoredStream cursorSelectObjects(CursoredStreamPolicy policy)
INTERNAL: Return remote cursor stream.


cursorSelectObjects

public org.eclipse.persistence.internal.sessions.remote.RemoteScrollableCursor cursorSelectObjects(ScrollableCursorPolicy policy)
INTERNAL: Return remote scrollable cursor


executeQuery

public java.lang.Object executeQuery(java.lang.String queryName)
                              throws DatabaseException
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The named query can be defined on the remote session or the server-side session.

Specified by:
executeQuery in interface Session
Overrides:
executeQuery in class org.eclipse.persistence.internal.sessions.AbstractSession
Throws:
DatabaseException
See Also:
AbstractSession.addQuery(String, DatabaseQuery)

executeQuery

public java.lang.Object executeQuery(java.lang.String queryName,
                                     java.lang.Class domainClass)
                              throws DatabaseException
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined. The query is executed on the server-side session.

Specified by:
executeQuery in interface Session
Overrides:
executeQuery in class org.eclipse.persistence.internal.sessions.AbstractSession
Throws:
DatabaseException
See Also:
DescriptorQueryManager.addQuery(String, DatabaseQuery)

executeQuery

public java.lang.Object executeQuery(java.lang.String queryName,
                                     java.lang.Class domainClass,
                                     java.util.Vector argumentValues)
                              throws DatabaseException
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse. The class is the descriptor in which the query was pre-defined.

Overrides:
executeQuery in class org.eclipse.persistence.internal.sessions.AbstractSession
Throws:
DatabaseException
See Also:
DescriptorQueryManager.addQuery(String, DatabaseQuery)

executeQuery

public java.lang.Object executeQuery(java.lang.String queryName,
                                     java.util.Vector argumentValues)
                              throws DatabaseException
PUBLIC: Execute the pre-defined query by name and return the result. Queries can be pre-defined and named to allow for their reuse.

Overrides:
executeQuery in class org.eclipse.persistence.internal.sessions.AbstractSession
Throws:
DatabaseException
See Also:
AbstractSession.addQuery(String, DatabaseQuery)

executeQuery

public abstract java.lang.Object executeQuery(DatabaseQuery query)
Execute the database query.

Specified by:
executeQuery in interface Session
Overrides:
executeQuery in class org.eclipse.persistence.internal.sessions.AbstractSession
See Also:
DatabaseQuery

executeQuery

public java.lang.Object executeQuery(DatabaseQuery query,
                                     org.eclipse.persistence.internal.sessions.AbstractRecord row)
INTERNAL: Execute the database query.

Overrides:
executeQuery in class org.eclipse.persistence.internal.sessions.AbstractSession

getDefaultReadOnlyClasses

public java.util.Vector getDefaultReadOnlyClasses()
INTERNAL: CR#2751 Returns the set of read-only classes for the receiver. These class come from the Remote connection

Overrides:
getDefaultReadOnlyClasses in class org.eclipse.persistence.internal.sessions.AbstractSession
Returns:
A Vector containing the Java Classes that are currently read-only.

getDescriptor

public ClassDescriptor getDescriptor(java.lang.Class domainClass)
INTERNAL: Return the table descriptor specified for the class.

Specified by:
getDescriptor in interface Session
Overrides:
getDescriptor in class org.eclipse.persistence.internal.sessions.AbstractSession

getDescriptorCorrespondingTo

public ClassDescriptor getDescriptorCorrespondingTo(ClassDescriptor descriptor)
INTERNAL: Return the descriptor.


getObjectCorrespondingTo

public abstract java.lang.Object getObjectCorrespondingTo(java.lang.Object serverSideDomainObject,
                                                          java.util.Map objectDescriptors,
                                                          java.util.Map processedObjects,
                                                          ObjectLevelReadQuery query)
INTERNAL: Return the corresponding objects from the remote session for the objects read from the server.


getObjectsCorrespondingToAll

public abstract java.lang.Object getObjectsCorrespondingToAll(java.lang.Object serverSideDomainObjects,
                                                              java.util.Map objectDescriptors,
                                                              java.util.Map processedObjects,
                                                              ObjectLevelReadQuery query,
                                                              org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy)
INTERNAL: Return the corresponding objects from the remote session for the objects read from the server.


getRemoteConnection

public org.eclipse.persistence.internal.sessions.remote.RemoteConnection getRemoteConnection()
INTERNAL: Return the remote connection.


hasCorrespondingDescriptor

public boolean hasCorrespondingDescriptor(ClassDescriptor descriptor)
INTERNAL: Checks if the descriptor exists or not.


initializeIdentityMapAccessor

public void initializeIdentityMapAccessor()
INTERNAL: Set up the IdentityMapManager. Overrides the default IdentityMapManager

Overrides:
initializeIdentityMapAccessor in class org.eclipse.persistence.internal.sessions.AbstractSession

instantiateRemoteValueHolderOnServer

public abstract java.lang.Object instantiateRemoteValueHolderOnServer(org.eclipse.persistence.internal.sessions.remote.RemoteValueHolder remoteValueHolder)
INTERNAL: This will instantiate value holder on the server.


isConnected

public boolean isConnected()
PUBLIC: Return if this session is connected to the server.

Specified by:
isConnected in interface Session
Overrides:
isConnected in class org.eclipse.persistence.internal.sessions.AbstractSession

isDistributedSession

public boolean isDistributedSession()
INTERNAL: Return if this session is a distributed session.

Specified by:
isDistributedSession in interface Session
Overrides:
isDistributedSession in class org.eclipse.persistence.internal.sessions.AbstractSession

isRemoteSession

public boolean isRemoteSession()
INTERNAL: Return if this session is a remote session.

Specified by:
isRemoteSession in interface Session
Overrides:
isRemoteSession in class org.eclipse.persistence.internal.sessions.AbstractSession

privilegedAddDescriptor

public void privilegedAddDescriptor(ClassDescriptor descriptor)
INTERNAL: You cannot add descriptors to a remote session. This is a internal method used by TopLink


rollbackTransaction

public void rollbackTransaction()
PUBLIC: Rollback a transaction on the server. A unit of work should normally be used instead of transactions for the remote session.

Overrides:
rollbackTransaction in class org.eclipse.persistence.internal.sessions.AbstractSession

setRemoteConnection

protected void setRemoteConnection(org.eclipse.persistence.internal.sessions.remote.RemoteConnection remoteConnection)
INTERNAL: Set the remote connection.


toString

public java.lang.String toString()
PUBLIC: Avoid printing the accessor and platform.

Overrides:
toString in class org.eclipse.persistence.internal.sessions.AbstractSession

release

public void release()
PUBLIC: Logout the session, close the remote connection and release the hold resources

Specified by:
release in interface Session
Overrides:
release in class org.eclipse.persistence.internal.sessions.AbstractSession

EclipseLink 2.3.2, build 'v20111125-r10461' API Reference