Module org.eclipse.persistence.core
Class DistributedSession
java.lang.Object
org.eclipse.persistence.internal.core.sessions.CoreAbstractSession<ClassDescriptor,Login,Platform,Project,SessionEventManager>
org.eclipse.persistence.internal.sessions.AbstractSession
org.eclipse.persistence.internal.sessions.DatabaseSessionImpl
org.eclipse.persistence.sessions.remote.DistributedSession
- All Implemented Interfaces:
Serializable,Cloneable,CoreSession<ClassDescriptor,,Login, Platform, Project, SessionEventManager> CommandProcessor,DatabaseSession,Session
- Direct Known Subclasses:
RemoteSession
Purpose: Super class to all remote client session's.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanCache if default classes have been read from server.protected booleanDefine if meta-data is initialized locally, or serialized from the server.protected RemoteConnectionConnection to remote persistence service.Fields inherited from class org.eclipse.persistence.internal.sessions.DatabaseSessionImpl
connectedTime, databaseEventListener, isLoggedIn, sequencingHome, serverPlatform, tunerFields inherited from class org.eclipse.persistence.internal.sessions.AbstractSession
accessors, activeCommandThreads, attributeGroups, broker, commandManager, commitManager, defaultReferenceMode, deferredEvents, descriptors, eventManager, exceptionHandler, externalTransactionController, identityMapAccessor, injectionManager, integrityChecker, isConcurrent, isExecutingEvents, isFinalizersEnabled, isInBroker, isInProfile, isLoggingOff, isSynchronized, jpaQueriesProcessed, lastDescriptorAccessed, logSessionString, metadatalistener, multitenantContextProperties, name, numberOfActiveUnitsOfWork, objectsLockedForClone, partitioningPolicy, pessimisticLockTimeoutDefault, pessimisticLockTimeoutUnitDefault, platform, profiler, project, properties, queries, queryBuilder, queryTimeoutDefault, queryTimeoutUnitDefault, serializer, sessionLog, shouldCheckWriteLock, shouldOptimizeResultSetAccess, shouldPropagateChanges, staticMetamodelClasses, tablePerTenantDescriptors, tablePerTenantQueries, tolerateInvalidJPQL, transactionMutex, wasJTSTransactionInternallyStartedFields inherited from interface org.eclipse.persistence.sessions.coordination.CommandProcessor
LOG_DEBUG, LOG_ERROR, LOG_INFO, LOG_WARNING -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDistributedSession(int nothing) INTERNAL: Create a blank session, used for proxy session.protectedDistributedSession(RemoteConnection remoteConnection) PUBLIC: Creates a DistributedSession. -
Method Summary
Modifier and TypeMethodDescriptionabstract UnitOfWorkImplPUBLIC: Return a unit of work for this session.voidPUBLIC: Start a transaction on the server.voidPUBLIC: Commit a transaction on the server.voidconnect()INTERNAL: Connect not required.INTERNAL: Return remote cursor stream.INTERNAL: Return remote scrollable cursorvoidINTERNAL: Disconnect not required.executeQuery(String queryName) PUBLIC: Execute the pre-defined query by name and return the result.executeQuery(String queryName, Class<?> domainClass) PUBLIC: Execute the pre-defined query by name and return the result.executeQuery(String queryName, Class<?> domainClass, Vector argumentValues) PUBLIC: Execute the pre-defined query by name and return the result.executeQuery(String queryName, Vector argumentValues) PUBLIC: Execute the pre-defined query by name and return the result.abstract ObjectexecuteQuery(DatabaseQuery query) Execute the database query.executeQuery(DatabaseQuery query, AbstractRecord row) INTERNAL: Execute the database query.INTERNAL: CR#2751 Returns the set of read-only classes for the receiver.getDescriptor(Class<?> domainClass) INTERNAL: Return the table descriptor specified for the class.getDescriptorCorrespondingTo(ClassDescriptor descriptor) INTERNAL: Return the descriptor.getDescriptorForAlias(String alias) INTERNAL: Return the table descriptor specified for the class.abstract ObjectgetObjectCorrespondingTo(Object serverSideDomainObject, Map<Object, ObjectDescriptor> objectDescriptors, Map<Object, Object> processedObjects, ObjectLevelReadQuery query) INTERNAL: Return the corresponding objects from the remote session for the objects read from the server.abstract ObjectgetObjectsCorrespondingToAll(Object serverSideDomainObjects, Map<Object, ObjectDescriptor> objectDescriptors, Map<Object, Object> processedObjects, ObjectLevelReadQuery query, ContainerPolicy containerPolicy) INTERNAL: Return the corresponding objects from the remote session for the objects read from the server.INTERNAL: Return the remote connection.booleanhasCorrespondingDescriptor(ClassDescriptor descriptor) INTERNAL: Checks if the descriptor exists or not.voidINTERNAL: Set up the IdentityMapManager.abstract ObjectinstantiateRemoteValueHolderOnServer(RemoteValueHolder remoteValueHolder) INTERNAL: This will instantiate value holder on the server.booleanPUBLIC: Return if this session is connected to the server.booleanINTERNAL: Return if this session is a distributed session.booleanADVANCED: Return if the descriptors and meta-data should be serialized from the server, or if they will be provided locally.booleanINTERNAL: Return if this session is a remote session.voidlogin()PUBLIC: Connect to the database using the predefined login.voidPUBLIC: Connect to the database using the predefined login.voidlogout()PUBLIC: Logout the session, close the remote connection and release the hold resourcesvoidprivilegedAddDescriptor(ClassDescriptor descriptor) INTERNAL: You cannot add descriptors to a remote session.voidPUBLIC: Rollback a transaction on the server.voidsetIsMetadataRemote(boolean isMetadataRemote) ADVANCED: Set if the descriptors and meta-data should be serialized from the server, or if they will be provided locally.voidsetRemoteConnection(RemoteConnection remoteConnection) INTERNAL: Set the remote connection.toString()PUBLIC: Avoid printing the accessor and platform.Methods inherited from class org.eclipse.persistence.internal.sessions.DatabaseSessionImpl
addDescriptor, addDescriptors, addDescriptors, addDescriptorsToSequencing, addSequence, finalize, getConnectedTime, getDatabaseEventListener, getDatasourcePlatform, getPlatform, getPlatform, getReadLogin, getSequencing, getSequencingControl, getSequencingHome, getServerPlatform, getTuner, initializeConnectedTime, initializeDescriptorIfSessionAlive, initializeDescriptors, initializeDescriptors, initializeDescriptors, initializeDescriptors, initializeDescriptors, initializeSequencing, isDatabaseSession, isLoggedIn, isProtectedSession, isSequencingCallbackRequired, login, login, postConnectDatasource, postLogin, preConnectDatasource, releaseJTSConnection, retryQuery, setDatabaseEventListener, setDatasourceAndInitialize, setOrDetectDatasource, setSequencingHome, setServerPlatform, setTuner, writeAllObjects, writeAllObjectsMethods inherited from class org.eclipse.persistence.internal.sessions.AbstractSession
acquireHistoricalSession, acquireNonSynchronizedUnitOfWork, acquireNonSynchronizedUnitOfWork, acquireRepeatableWriteUnitOfWork, acquireUnitOfWork, addAlias, addJPAQuery, addJPATablePerTenantQuery, addMultitenantContextProperty, addQuery, addQuery, addQuery, addStaticMetamodelClass, addTablePerTenantDescriptor, addTablePerTenantQuery, basicBeginTransaction, basicBeginTransaction, basicCommitTransaction, basicExecuteCall, basicRollbackTransaction, beginExternalTransaction, buildDefaultQueryBuilder, checkAndRefreshInvalidObject, checkHierarchyForDescriptor, cleanUpInjectionManager, clearDescriptors, clearIntegrityChecker, clearLastDescriptorAccessed, clearProfile, clearThreadsToWaitMergeManagerWaitingDeferredCacheKeys, clone, commitExternalTransaction, compareObjects, compareObjectsDontMatch, config, containsQuery, copy, copy, copyDescriptorNamedQueries, copyDescriptorsFromProject, copyInternal, copyReadOnlyClasses, createCloneQueryValueHolder, createCloneTransformationValueHolder, createInjectionManager, createProtectedInstanceFromCachedData, deferEvent, 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, getAttributeGroups, getBroker, getCacheKeyFromTargetSessionForMerge, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getCommandManager, getCommitManager, getDatasourceLogin, getDefaultReferenceMode, getDescriptor, getDescriptors, getEventManager, getExceptionHandler, getExceptionHandlerClass, getExecutionSession, getExternalTransactionController, getId, getIdentityMapAccessor, getIdentityMapAccessorInstance, getInjectionManager, getIntegrityChecker, getJPAQueries, getJPATablePerTenantQueries, getLoader, getLog, getLogin, getLogLevel, getLogLevel, getLogSessionString, getMappedSuperclass, getMultitenantContextProperties, getName, getNextQueryId, getNextSequenceNumberValue, getNumberOfActiveUnitsOfWork, getParent, getParentIdentityMapSession, getParentIdentityMapSession, getParentIdentityMapSession, getPartitioningPolicy, getPessimisticLockTimeoutDefault, getPessimisticLockTimeoutUnitDefault, getProfiler, getProject, getProperties, getProperty, getQueries, getQuery, getQuery, getQuery, getQuery, getQueryBuilder, getQueryTimeoutDefault, getQueryTimeoutUnitDefault, getRefreshMetadataListener, getRootSession, getSerializer, getSessionForClass, getSessionForName, getSessionLog, getSessionTypeString, getStaticMetamodelClass, getTablePerTenantDescriptors, getTablePerTenantQueries, getThreadsToWaitMergeManagerWaitingDeferredCacheKeysSnapshot, getTransactionMutex, handleException, handleSevere, hasBroker, hasCommitManager, hasDescriptor, hasEventManager, hasExceptionHandler, hasExternalTransactionController, hasProperties, hasTablePerTenantDescriptors, hasTablePerTenantQueries, incrementProfile, incrementProfile, info, insertObject, internalExecuteQuery, isBroker, isClassReadOnly, isClassReadOnly, isClientSession, isConcurrent, isConsideredInvalid, isExclusiveConnectionRequired, isExclusiveIsolatedClientSession, isFinalizersEnabled, isHistoricalSession, isInBroker, isInProfile, isInTransaction, isIsolatedClientSession, isJPAQueriesProcessed, isLoggingOff, isRemoteUnitOfWork, isServerSession, isSessionBroker, isSynchronized, isUnitOfWork, keyFromObject, load, load, log, log, log, log, log, log, log, log, logMessage, logMessage, logThrowable, postAcquireConnection, prepareDatabaseQuery, preReleaseConnection, priviledgedExecuteNonSelectingCall, priviledgedExecuteSelectingCall, processCommand, processJPAQueries, processJPAQuery, readAllObjects, readAllObjects, readAllObjects, readAllObjects, readObject, readObject, readObject, readObject, readObject, refreshAndLockObject, refreshAndLockObject, refreshObject, registerFinalizer, release, releaseConnectionAfterCall, releaseReadConnection, releaseUnitOfWork, removeProperty, removeQuery, removeQuery, retrieveCacheKey, retryTransaction, rollbackExternalTransaction, setAccessor, setBroker, setCommandManager, setCommitManager, setDatasourceLogin, setDefaultReferenceMode, setEventManager, setExceptionHandler, setExternalTransactionController, setInjectionManager, setIntegrityChecker, setIsConcurrent, setIsFinalizersEnabled, setIsInBroker, setIsInProfile, setJPAQueriesProcessed, setLog, setLoggingOff, setLogin, setLogin, setLogLevel, setName, setNumberOfActiveUnitsOfWork, setPartitioningPolicy, setPessimisticLockTimeoutDefault, setPessimisticLockTimeoutUnitDefault, setProfiler, setProject, setProperties, setProperty, setQueries, setQueryBuilder, setQueryTimeoutDefault, setQueryTimeoutUnitDefault, setRefreshMetadataListener, setSerializer, setSessionLog, setShouldOptimizeResultSetAccess, setShouldPropagateChanges, setSynchronized, setThreadsToWaitMergeManagerWaitingDeferredCacheKeys, setTolerateInvalidJPQL, setTransactionMutex, setWasJTSTransactionInternallyStarted, severe, shouldDisplayData, shouldLog, shouldLogMessages, shouldLogMessages, shouldOptimizeResultSetAccess, shouldPropagateChanges, shouldTolerateInvalidJPQL, startOperationProfile, startOperationProfile, unwrapObject, updateObject, updateProfile, updateTablePerTenantDescriptors, validateCache, validateQuery, verifyDelete, warning, wasJTSTransactionInternallyStarted, wrapObject, writeAllObjectsWithChangeSet, writeObject, writesCompletedMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.sessions.DatabaseSession
deleteAllObjects, deleteObject, getCommandManager, insertObject, isInTransaction, refreshAndLockObject, refreshAndLockObject, setCommandManager, setDatasourceLogin, setExternalTransactionController, setLogin, setShouldPropagateChanges, shouldPropagateChanges, updateObject, writeObjectMethods inherited from interface org.eclipse.persistence.sessions.Session
acquireHistoricalSession, acquireUnitOfWork, addJPAQuery, addQuery, clearIntegrityChecker, clearProfile, containsQuery, copy, copy, doesObjectExist, dontLogMessages, executeNonSelectingCall, executeNonSelectingSQL, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeSelectingCall, executeSQL, getActiveSession, getActiveUnitOfWork, getAsOfClause, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getDatasourceLogin, getDefaultReferenceMode, getDescriptor, getDescriptors, getEventManager, getExceptionHandler, getExternalTransactionController, getId, getIdentityMapAccessor, getIntegrityChecker, getJPAQueries, getLog, getLogin, getLogLevel, getLogLevel, getName, getNextSequenceNumberValue, getPartitioningPolicy, getProfiler, getProject, getProperties, getProperty, getQueries, getQuery, getQuery, getSerializer, getSessionLog, handleException, handleSevere, hasDescriptor, hasExceptionHandler, hasExternalTransactionController, isClientSession, isFinalizersEnabled, isInProfile, isRemoteUnitOfWork, isServerSession, isSessionBroker, isUnitOfWork, log, logMessage, readAllObjects, readAllObjects, readAllObjects, readObject, readObject, readObject, readObject, refreshObject, release, removeProperty, removeQuery, setDefaultReferenceMode, setExceptionHandler, setIntegrityChecker, setIsFinalizersEnabled, setLog, setLogLevel, setName, setPartitioningPolicy, setProfiler, setProperty, setQueryTimeoutDefault, setQueryTimeoutUnitDefault, setSerializer, setSessionLog, shouldLog, shouldLogMessages, validateCache
-
Field Details
-
remoteConnection
Connection to remote persistence service. -
hasDefaultReadOnlyClasses
protected boolean hasDefaultReadOnlyClassesCache if default classes have been read from server. -
isMetadataRemote
protected boolean isMetadataRemoteDefine if meta-data is initialized locally, or serialized from the server.
-
-
Constructor Details
-
DistributedSession
protected DistributedSession(int nothing) INTERNAL: Create a blank session, used for proxy session. -
DistributedSession
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 Details
-
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:
acquireUnitOfWorkin interfaceSession- Overrides:
acquireUnitOfWorkin classAbstractSession- See Also:
-
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.- Specified by:
beginTransactionin interfaceDatabaseSession- Overrides:
beginTransactionin classAbstractSession- See Also:
-
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.- Specified by:
commitTransactionin interfaceDatabaseSession- Overrides:
commitTransactionin classAbstractSession
-
cursorSelectObjects
INTERNAL: Return remote cursor stream. -
cursorSelectObjects
INTERNAL: Return remote scrollable cursor -
executeQuery
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:
executeQueryin interfaceSession- Overrides:
executeQueryin classAbstractSession- Throws:
DatabaseException- See Also:
-
executeQuery
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:
executeQueryin interfaceSession- Overrides:
executeQueryin classAbstractSession- Throws:
DatabaseException- See Also:
-
executeQuery
public Object executeQuery(String queryName, Class<?> domainClass, 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:
executeQueryin classAbstractSession- Throws:
DatabaseException- See Also:
-
executeQuery
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:
executeQueryin classAbstractSession- Throws:
DatabaseException- See Also:
-
executeQuery
Execute the database query.- Specified by:
executeQueryin interfaceSession- Overrides:
executeQueryin classAbstractSession- See Also:
-
executeQuery
INTERNAL: Execute the database query.- Overrides:
executeQueryin classAbstractSession
-
getDefaultReadOnlyClasses
INTERNAL: CR#2751 Returns the set of read-only classes for the receiver. These class come from the Remote connection- Overrides:
getDefaultReadOnlyClassesin classAbstractSession- Returns:
- A Vector containing the Java Classes that are currently read-only.
- See Also:
-
getDescriptor
INTERNAL: Return the table descriptor specified for the class.- Specified by:
getDescriptorin interfaceCoreSession<ClassDescriptor,Login, Platform, Project, SessionEventManager> - Specified by:
getDescriptorin interfaceSession- Overrides:
getDescriptorin classAbstractSession
-
getDescriptorForAlias
INTERNAL: Return the table descriptor specified for the class.- Specified by:
getDescriptorForAliasin interfaceSession- Overrides:
getDescriptorForAliasin classAbstractSession- Parameters:
alias- The descriptor alias.- Returns:
- The descriptor for the alias or
nullif no descriptor was found.
-
getDescriptorCorrespondingTo
INTERNAL: Return the descriptor. -
getObjectCorrespondingTo
public abstract Object getObjectCorrespondingTo(Object serverSideDomainObject, Map<Object, ObjectDescriptor> objectDescriptors, Map<Object, Object> processedObjects, ObjectLevelReadQuery query) INTERNAL: Return the corresponding objects from the remote session for the objects read from the server. -
getObjectsCorrespondingToAll
public abstract Object getObjectsCorrespondingToAll(Object serverSideDomainObjects, Map<Object, ObjectDescriptor> objectDescriptors, Map<Object, Object> processedObjects, ObjectLevelReadQuery query, ContainerPolicy containerPolicy) INTERNAL: Return the corresponding objects from the remote session for the objects read from the server. -
getRemoteConnection
INTERNAL: Return the remote connection. -
hasCorrespondingDescriptor
INTERNAL: Checks if the descriptor exists or not. -
initializeIdentityMapAccessor
public void initializeIdentityMapAccessor()INTERNAL: Set up the IdentityMapManager. Overrides the default IdentityMapManager- Overrides:
initializeIdentityMapAccessorin classAbstractSession
-
instantiateRemoteValueHolderOnServer
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:
isConnectedin interfaceSession- Overrides:
isConnectedin classAbstractSession
-
isDistributedSession
public boolean isDistributedSession()INTERNAL: Return if this session is a distributed session.- Specified by:
isDistributedSessionin interfaceSession- Overrides:
isDistributedSessionin classAbstractSession
-
isRemoteSession
public boolean isRemoteSession()INTERNAL: Return if this session is a remote session.- Specified by:
isRemoteSessionin interfaceSession- Overrides:
isRemoteSessionin classAbstractSession
-
privilegedAddDescriptor
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.- Specified by:
rollbackTransactionin interfaceDatabaseSession- Overrides:
rollbackTransactionin classAbstractSession
-
setRemoteConnection
INTERNAL: Set the remote connection. -
toString
PUBLIC: Avoid printing the accessor and platform.- Overrides:
toStringin classAbstractSession
-
logout
public void logout()PUBLIC: Logout the session, close the remote connection and release the hold resources- Specified by:
logoutin interfaceDatabaseSession- Overrides:
logoutin classDatabaseSessionImpl
-
isMetadataRemote
public boolean isMetadataRemote()ADVANCED: Return if the descriptors and meta-data should be serialized from the server, or if they will be provided locally. -
setIsMetadataRemote
public void setIsMetadataRemote(boolean isMetadataRemote) ADVANCED: Set if the descriptors and meta-data should be serialized from the server, or if they will be provided locally. -
connect
INTERNAL: Connect not required.- Overrides:
connectin classDatabaseSessionImpl- Throws:
DatabaseException
-
disconnect
INTERNAL: Disconnect not required.- Overrides:
disconnectin classDatabaseSessionImpl- Throws:
DatabaseException
-
loginAndDetectDatasource
PUBLIC: Connect to the database using the predefined login. During connection, attempt to auto detect the required database platform. This method can be used in systems where for ease of use developers have EclipseLink autodetect the platform. To be safe, however, the platform should be configured directly. The login must have been assigned when or after creating the session.- Overrides:
loginAndDetectDatasourcein classDatabaseSessionImpl- Throws:
DatabaseException
-
login
PUBLIC: Connect to the database using the predefined login. Obtain the login from the server, as it may have configuration initialized from the database meta-data.- Specified by:
loginin interfaceDatabaseSession- Overrides:
loginin classDatabaseSessionImpl- Throws:
DatabaseException- See Also:
-