Module org.eclipse.persistence.core
Class SessionBroker
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.broker.SessionBroker
- All Implemented Interfaces:
Serializable,Cloneable,CoreSession<ClassDescriptor,,Login, Platform, Project, SessionEventManager> CommandProcessor,DatabaseSession,Session
- Direct Known Subclasses:
SessionBrokerPlaceHolder
Purpose: Provide a single view to a TopLink session that transparently accesses multple databases.
Responsibilities:
- Broker queries to the appropriate child sessions.
- Use a simplified two-stage commit policy on commit of transaction.
- Support brokered units of work.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected SessionBrokerprotected Sequencingprotected Map<String, AbstractSession> protected booleanFields 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
ConstructorsModifierConstructorDescriptionPUBLIC: Create and return a session broker.protectedSessionBroker(Map sessionNames) INTERNAL: Create and return a session broker. -
Method Summary
Modifier and TypeMethodDescriptionPUBLIC: Return a session broker that behaves as a client session broker.acquireClientSessionBroker(Map<String, ConnectionPolicy> connectionPolicies, Map mapOfProperties) PUBLIC: Return a session broker that behaves as a client session broker.acquireHistoricalSession(AsOfClause clause) INTERNAL: Acquires a special historical session for reading objects as of a past time.PUBLIC: Return a unit of work for this session broker.voidaddDescriptor(ClassDescriptor descriptor) PUBLIC: You cannot add a descriptor to a session broker, you must add it to its session.voidaddDescriptors(Vector descriptors) PUBLIC: You cannot add descriptors to a session broker, you must add them to its session.voidaddDescriptors(Project project) PUBLIC: You cannot add a project to a session broker, you must add it to its session.voidaddSequence(Sequence sequence) PUBLIC: You cannot add a sequence to a session broker, you must add it to its session.protected voidINTERNAL: Begin the transaction on all child sessions.protected voidINTERNAL: Commit the transaction on all child sessions.protected voidINTERNAL: Rollback the transaction on all child sessions.booleancontainsQuery(String queryName) PUBLIC: Return true if the pre-defined query is defined on the session.protected SessionBrokerINTERNAL: Return a copy (not using clone) of a session broker.getAccessors(Call call, AbstractRecord translationRow, DatabaseQuery query) INTERNAL: Return the low-level database accessors.ADVANCED: Answers the past time this session is as of.getExecutionSession(DatabaseQuery query) INTERNAL: Gets the session which this query will be executed on.INTERNAL: Gets the parent SessionBroker.getPlatform(Class<?> domainClass) INTERNAL: Return the platform for a particular class.PUBLIC: Return the query from the session pre-defined queries with the given name and argument types.PUBLIC: Return the Sequencing object used by the session.protected SequencingHomePROTECTED: Session broker doesn't have SequencingHome.getSessionForClass(Class<?> domainClass) INTERNAL: Return the session to be used for the class.getSessionForName(String name) INTERNAL: Return the session by name.protected AbstractSessiongetSessionForQuery(DatabaseQuery query) INTERNAL: Answers the session to be used for the given query.INTERNAL: Return sessions indexed by class, each class can only have one default session.INTERNAL: Return sessions indexed by name.intINTERNAL: Returns a number of member sessions that require sequencing callback.voidINTERNAL: Allow each descriptor to initialize any dependencies on this session.voidINTERNAL: Set up the IdentityMapManager.voidADVANCED: Creates sequencing object for the session broker.internalExecuteQuery(DatabaseQuery query, AbstractRecord row) INTERNAL: Return the results from exeucting the database query.booleanisBroker()INTERNAL: Returns true if the session is a session Broker.booleanPUBLIC: Return if this session is a client session broker.booleanPUBLIC: Return if all sessions are still connected to the database.booleanINTERNAL: Indicates whether SequencingCallback is required.booleanPUBLIC: Return if this session is a server session broker.booleanINTERNAL: Return if this session is a session broker.voidlogin()PUBLIC: Connect to the database using the predefined login.voidPUBLIC: Connect to the database using the predefined login.voidPUBLIC: Connect to the database using the predefined login.voidlogout()PUBLIC: Disconnect from all databases.voidINTERNAL: Rise postLogin events for member sessions and the SessionBroker.voidregisterSession(String name, AbstractSession session) PUBLIC: Register the session under its name.voidregisterSession(String name, Session session) PUBLIC: Register the session under its name.voidrelease()PUBLIC: Release the session.voidINTERNAL: Called in the end of beforeCompletion of external transaction sychronization listener.retryQuery(DatabaseQuery query, AbstractRecord row, DatabaseException databaseException, int retryCount, AbstractSession executionSession) INTERNAL: A query execution failed due to an invalid query.voidsetExternalTransactionController(ExternalTransactionController externalTransactionController) INTERNAL: Used for JTS integration internally by ServerPlatform.voidsetIntegrityChecker(IntegrityChecker integrityChecker) PUBLIC: set the integrityChecker.voidPUBLIC: Set the message log.voidsetProfiler(SessionProfiler profiler) PUBLIC: Set the profiler for the session.voidsetSessionLog(SessionLog log) PUBLIC: Set the session log.protected voidsetSessionNameByClass(HashMap sessionNameByClass) INTERNAL: Set sessions indexed by class, each class can only have one default session.voidsetSessionsByName(Map sessionsByName) INTERNAL: Set sessions indexed by name.voidsetShouldUseDescriptorAliases(boolean shouldUseDescriptorAliases) PUBLIC: Indicates whether descriptors should use aliasDescriptors map.voidsetSynchronized(boolean synched) INTERNAL: Set isSynchronized flag to indicate that members of session broker are synchronized.booleanPUBLIC: Indicates whether descriptors should use aliasDescriptors map.voidINTERNAL: This method notifies the accessor that a particular sets of writes has completed.Methods inherited from class org.eclipse.persistence.internal.sessions.DatabaseSessionImpl
addDescriptors, addDescriptorsToSequencing, connect, disconnect, finalize, getConnectedTime, getDatabaseEventListener, getDatasourcePlatform, getPlatform, getReadLogin, getSequencingControl, getServerPlatform, getTuner, initializeConnectedTime, initializeDescriptorIfSessionAlive, initializeDescriptors, initializeDescriptors, initializeDescriptors, initializeDescriptors, isDatabaseSession, isLoggedIn, isProtectedSession, login, postConnectDatasource, preConnectDatasource, setDatabaseEventListener, setDatasourceAndInitialize, setOrDetectDatasource, setSequencingHome, setServerPlatform, setTuner, writeAllObjects, writeAllObjectsMethods inherited from class org.eclipse.persistence.internal.sessions.AbstractSession
acquireNonSynchronizedUnitOfWork, acquireNonSynchronizedUnitOfWork, acquireRepeatableWriteUnitOfWork, acquireUnitOfWork, addAlias, addJPAQuery, addJPATablePerTenantQuery, addMultitenantContextProperty, addQuery, addQuery, addQuery, addStaticMetamodelClass, addTablePerTenantDescriptor, addTablePerTenantQuery, basicBeginTransaction, basicExecuteCall, beginExternalTransaction, beginTransaction, buildDefaultQueryBuilder, checkAndRefreshInvalidObject, checkHierarchyForDescriptor, cleanUpInjectionManager, clearDescriptors, clearIntegrityChecker, clearLastDescriptorAccessed, clearProfile, clearThreadsToWaitMergeManagerWaitingDeferredCacheKeys, clone, commitExternalTransaction, commitTransaction, compareObjects, compareObjectsDontMatch, config, 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, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeSelectingCall, executeSQL, fine, finer, finest, getAccessor, getAccessors, getActiveCommandThreads, getActiveSession, getActiveUnitOfWork, getAliasDescriptors, getAllQueries, getAttributeGroups, getBroker, getCacheKeyFromTargetSessionForMerge, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getCommandManager, getCommitManager, getDatasourceLogin, getDefaultReadOnlyClasses, getDefaultReferenceMode, getDescriptor, getDescriptor, getDescriptorForAlias, getDescriptors, getEventManager, getExceptionHandler, getExceptionHandlerClass, getExternalTransactionController, getId, getIdentityMapAccessor, getIdentityMapAccessorInstance, getInjectionManager, getIntegrityChecker, getJPAQueries, getJPATablePerTenantQueries, getLoader, getLog, getLogin, getLogLevel, getLogLevel, getLogSessionString, getMappedSuperclass, getMultitenantContextProperties, getName, getNextQueryId, getNextSequenceNumberValue, getNumberOfActiveUnitsOfWork, getParentIdentityMapSession, getParentIdentityMapSession, getParentIdentityMapSession, getPartitioningPolicy, getPessimisticLockTimeoutDefault, getPessimisticLockTimeoutUnitDefault, getProfiler, getProject, getProperties, getProperty, getQueries, getQuery, getQuery, getQuery, getQueryBuilder, getQueryTimeoutDefault, getQueryTimeoutUnitDefault, getRefreshMetadataListener, getRootSession, getSerializer, getSessionLog, getSessionTypeString, getStaticMetamodelClass, getTablePerTenantDescriptors, getTablePerTenantQueries, getThreadsToWaitMergeManagerWaitingDeferredCacheKeysSnapshot, getTransactionMutex, handleException, handleSevere, hasBroker, hasCommitManager, hasDescriptor, hasEventManager, hasExceptionHandler, hasExternalTransactionController, hasProperties, hasTablePerTenantDescriptors, hasTablePerTenantQueries, incrementProfile, incrementProfile, info, insertObject, isClassReadOnly, isClassReadOnly, isClientSession, isConcurrent, isConsideredInvalid, isDistributedSession, isExclusiveConnectionRequired, isExclusiveIsolatedClientSession, isFinalizersEnabled, isHistoricalSession, isInBroker, isInProfile, isInTransaction, isIsolatedClientSession, isJPAQueriesProcessed, isLoggingOff, isRemoteSession, isRemoteUnitOfWork, isServerSession, 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, releaseConnectionAfterCall, releaseReadConnection, releaseUnitOfWork, removeProperty, removeQuery, removeQuery, retrieveCacheKey, retryTransaction, rollbackExternalTransaction, rollbackTransaction, setAccessor, setBroker, setCommandManager, setCommitManager, setDatasourceLogin, setDefaultReferenceMode, setEventManager, setExceptionHandler, setInjectionManager, setIsConcurrent, setIsFinalizersEnabled, setIsInBroker, setIsInProfile, setJPAQueriesProcessed, setLoggingOff, setLogin, setLogin, setLogLevel, setName, setNumberOfActiveUnitsOfWork, setPartitioningPolicy, setPessimisticLockTimeoutDefault, setPessimisticLockTimeoutUnitDefault, setProject, setProperties, setProperty, setQueries, setQueryBuilder, setQueryTimeoutDefault, setQueryTimeoutUnitDefault, setRefreshMetadataListener, setSerializer, setShouldOptimizeResultSetAccess, setShouldPropagateChanges, setThreadsToWaitMergeManagerWaitingDeferredCacheKeys, setTolerateInvalidJPQL, setTransactionMutex, setWasJTSTransactionInternallyStarted, severe, shouldDisplayData, shouldLog, shouldLogMessages, shouldLogMessages, shouldOptimizeResultSetAccess, shouldPropagateChanges, shouldTolerateInvalidJPQL, startOperationProfile, startOperationProfile, toString, unwrapObject, updateObject, updateProfile, updateTablePerTenantDescriptors, validateCache, validateQuery, verifyDelete, warning, wasJTSTransactionInternallyStarted, wrapObject, writeAllObjectsWithChangeSet, writeObjectMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.eclipse.persistence.sessions.DatabaseSession
beginTransaction, commitTransaction, deleteAllObjects, deleteObject, getCommandManager, insertObject, isInTransaction, refreshAndLockObject, refreshAndLockObject, rollbackTransaction, setCommandManager, setDatasourceLogin, setLogin, setShouldPropagateChanges, shouldPropagateChanges, updateObject, writeObjectMethods inherited from interface org.eclipse.persistence.sessions.Session
acquireUnitOfWork, addJPAQuery, addQuery, clearIntegrityChecker, clearProfile, copy, copy, doesObjectExist, dontLogMessages, executeNonSelectingCall, executeNonSelectingSQL, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeSelectingCall, executeSQL, getActiveSession, getActiveUnitOfWork, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getDatasourceLogin, getDefaultReferenceMode, getDescriptor, getDescriptor, getDescriptorForAlias, 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, isDistributedSession, isFinalizersEnabled, isInProfile, isRemoteSession, isRemoteUnitOfWork, isServerSession, isUnitOfWork, log, logMessage, readAllObjects, readAllObjects, readAllObjects, readObject, readObject, readObject, readObject, refreshObject, removeProperty, removeQuery, setDefaultReferenceMode, setExceptionHandler, setIsFinalizersEnabled, setLogLevel, setName, setPartitioningPolicy, setProperty, setQueryTimeoutDefault, setQueryTimeoutUnitDefault, setSerializer, shouldLog, shouldLogMessages, validateCache
-
Field Details
-
parent
-
sessionNamesByClass
-
sessionsByName
-
sequencing
-
shouldUseDescriptorAliases
protected boolean shouldUseDescriptorAliases
-
-
Constructor Details
-
SessionBroker
public SessionBroker()PUBLIC: Create and return a session broker. Because a session broker has multiple sessions it does not used a login. -
SessionBroker
INTERNAL: Create and return a session broker. Used internally to set the Names by Class from the parent. Reduces garbage.
-
-
Method Details
-
acquireClientSessionBroker
PUBLIC: Return a session broker that behaves as a client session broker. An acquire session broker is done under the covers on each session inside the session broker, and a new broker is returned. NOTE: when finished with the client broker, it should be released. -
acquireClientSessionBroker
public SessionBroker acquireClientSessionBroker(Map<String, ConnectionPolicy> connectionPolicies, Map mapOfProperties) PUBLIC: Return a session broker that behaves as a client session broker. An acquire session broker is done under the covers on each session inside the session broker, and a new broker is returned. NOTE: when finished with the client broker, it should be released.- Parameters:
connectionPolicies- maps session name to connectionPolicy to be used for this session;mapOfProperties- maps session name to properties to be used for this session.
-
acquireHistoricalSession
INTERNAL: Acquires a special historical session for reading objects as of a past time.- Specified by:
acquireHistoricalSessionin interfaceSession- Overrides:
acquireHistoricalSessionin classAbstractSession- Parameters:
clause- Represents a valid snap shot time.- Throws:
ValidationException- ifthisnot a ClientSession, plain Session, or SessionBroker.- See Also:
-
releaseJTSConnection
public void releaseJTSConnection()INTERNAL: Called in the end of beforeCompletion of external transaction sychronization listener. Close the managed sql connection corresponding to the external transaction, if applicable releases accessor.- Overrides:
releaseJTSConnectionin classDatabaseSessionImpl
-
acquireUnitOfWork
PUBLIC: Return a unit of work for this session broker. Acquire a client session broker if is a server session broker.- Specified by:
acquireUnitOfWorkin interfaceSession- Overrides:
acquireUnitOfWorkin classAbstractSession- See Also:
-
addDescriptor
PUBLIC: You cannot add a descriptor to a session broker, you must add it to its session.- Specified by:
addDescriptorin interfaceDatabaseSession- Overrides:
addDescriptorin classDatabaseSessionImpl- See Also:
-
addDescriptors
PUBLIC: You cannot add descriptors to a session broker, you must add them to its session.- Throws:
ValidationException
-
addDescriptors
PUBLIC: You cannot add a project to a session broker, you must add it to its session.- Specified by:
addDescriptorsin interfaceDatabaseSession- Overrides:
addDescriptorsin classDatabaseSessionImpl- Throws:
ValidationException
-
addSequence
PUBLIC: You cannot add a sequence to a session broker, you must add it to its session.- Specified by:
addSequencein interfaceDatabaseSession- Overrides:
addSequencein classDatabaseSessionImpl- See Also:
-
basicBeginTransaction
INTERNAL: Begin the transaction on all child sessions.- Overrides:
basicBeginTransactionin classAbstractSession- Throws:
DatabaseException
-
basicCommitTransaction
INTERNAL: Commit the transaction on all child sessions. This assumes that the commit of the transaction will not fail because all of the modification has already taken place and no errors would have occurred.- Overrides:
basicCommitTransactionin classAbstractSession- Throws:
DatabaseException
-
basicRollbackTransaction
INTERNAL: Rollback the transaction on all child sessions.- Overrides:
basicRollbackTransactionin classAbstractSession- Throws:
DatabaseException
-
containsQuery
PUBLIC: Return true if the pre-defined query is defined on the session.- Specified by:
containsQueryin interfaceSession- Overrides:
containsQueryin classAbstractSession
-
copySessionBroker
INTERNAL: Return a copy (not using clone) of a session broker. -
getAccessors
public Collection<Accessor> getAccessors(Call call, AbstractRecord translationRow, DatabaseQuery query) INTERNAL: Return the low-level database accessors. The database accessor is used for direct database access. The right accessor for this broker will be returned.- Overrides:
getAccessorsin classAbstractSession
-
getAsOfClause
ADVANCED: Answers the past time this session is as of. Only meaningful for special historical sessions.- Specified by:
getAsOfClausein interfaceSession- Overrides:
getAsOfClausein classAbstractSession- Returns:
- An immutable object representation of the past time.
nullif no clause set, or this a regular session. - See Also:
-
getParent
INTERNAL: Gets the parent SessionBroker.- Overrides:
getParentin classAbstractSession
-
getExecutionSession
INTERNAL: Gets the session which this query will be executed on. Generally will be called immediately before the call is translated, which is immediately before session.executeCall.Since the execution session also knows the correct datasource platform to execute on, it is often used in the mappings where the platform is needed for type conversion, or where calls are translated.
Is also the session with the accessor. Will return a ClientSession if it is in transaction and has a write connection.
- Overrides:
getExecutionSessionin classAbstractSession- Parameters:
query- may store session name or reference class for brokers case- Returns:
- a session with a live accessor
-
getPlatform
INTERNAL: Return the platform for a particular class.- Overrides:
getPlatformin classDatabaseSessionImpl
-
getQuery
PUBLIC: Return the query from the session pre-defined queries with the given name and argument types. This allows for common queries to be pre-defined, reused and executed by name. This method should be used if the Session has multiple queries with the same name but different arguments. The search order is: for ClientSessionBroker: the broker; it's member ClientSessions (but not their parent ServerSessions); the parent SessionBroker. for ServerSession or DatabaseSession SessionBroker: the broker; it's member ServerSessions (or DatabaseSessions).- Overrides:
getQueryin classAbstractSession- Parameters:
shouldSearchParent- indicates whether parent should be searched if query not found.- See Also:
-
getSessionForClass
INTERNAL: Return the session to be used for the class.- Overrides:
getSessionForClassin classAbstractSession- Throws:
ValidationException
-
getSessionForName
INTERNAL: Return the session by name.- Overrides:
getSessionForNamein classAbstractSession- Throws:
ValidationException
-
getSessionForQuery
INTERNAL: Answers the session to be used for the given query. -
getSessionNamesByClass
INTERNAL: Return sessions indexed by class, each class can only have one default session. -
getSessionsByName
INTERNAL: Return sessions indexed by name. -
initializeDescriptors
public void initializeDescriptors()INTERNAL: Allow each descriptor to initialize any dependencies on this session. This is done in two passes to allow the inheritance to be resolved first. Normally the descriptors are added before login, then initialized on login. Should not be called on client SessoionBroker- Overrides:
initializeDescriptorsin classDatabaseSessionImpl
-
initializeIdentityMapAccessor
public void initializeIdentityMapAccessor()INTERNAL: Set up the IdentityMapManager. This method allows subclasses of Session to override the default IdentityMapManager functionality.- Overrides:
initializeIdentityMapAccessorin classAbstractSession
-
internalExecuteQuery
public Object internalExecuteQuery(DatabaseQuery query, AbstractRecord row) throws DatabaseException, QueryException INTERNAL: Return the results from exeucting the database query. the arguments should be a database row with raw data values. Find the correct child session to broker the query to, and return the result of the session executing the query.- Overrides:
internalExecuteQueryin classAbstractSession- Throws:
DatabaseExceptionQueryException
-
isBroker
public boolean isBroker()INTERNAL: Returns true if the session is a session Broker.- Overrides:
isBrokerin classAbstractSession
-
isClientSessionBroker
public boolean isClientSessionBroker()PUBLIC: Return if this session is a client session broker. -
isConnected
public boolean isConnected()PUBLIC: Return if all sessions are still connected to the database.- Specified by:
isConnectedin interfaceSession- Overrides:
isConnectedin classAbstractSession
-
isServerSessionBroker
public boolean isServerSessionBroker()PUBLIC: Return if this session is a server session broker. -
isSessionBroker
public boolean isSessionBroker()INTERNAL: Return if this session is a session broker.- Specified by:
isSessionBrokerin interfaceSession- Overrides:
isSessionBrokerin classAbstractSession
-
login
PUBLIC: Connect to the database using the predefined login. This connects all of the child sessions and expects that they are in a valid state to be connected.- Specified by:
loginin interfaceDatabaseSession- Overrides:
loginin classDatabaseSessionImpl- Throws:
DatabaseException- See Also:
-
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. This connects all of the child sessions and expects that they are in a valid state to be connected.- Specified by:
loginin interfaceDatabaseSession- Overrides:
loginin classDatabaseSessionImpl- Throws:
DatabaseException
-
logout
PUBLIC: Disconnect from all databases.- Specified by:
logoutin interfaceDatabaseSession- Overrides:
logoutin classDatabaseSessionImpl- Throws:
EclipseLinkException- if a transaction is active, you must rollback any active transaction before logout.DatabaseException- the database will also raise an error if their is an active transaction, or a general error occurs.
-
postLogin
public void postLogin()INTERNAL: Rise postLogin events for member sessions and the SessionBroker.- Overrides:
postLoginin classDatabaseSessionImpl
-
registerSession
PUBLIC: Register the session under its name. All of the session's descriptors must have already been registered. DatabaseSession/ServerSession should not be connected and descriptors should not be initialized. -
registerSession
PUBLIC: Register the session under its name. All of the session's descriptors must have already been registered. DatabaseSession/ServerSession should not be connected and descriptors should not be initialized. -
release
public void release()PUBLIC: Release the session. This does nothing by default, but allows for other sessions such as the ClientSession to do something.- Specified by:
releasein interfaceSession- Overrides:
releasein classAbstractSession
-
retryQuery
public Object retryQuery(DatabaseQuery query, AbstractRecord row, DatabaseException databaseException, int retryCount, AbstractSession executionSession) INTERNAL: A query execution failed due to an invalid query. Re-connect and retry the query.- Overrides:
retryQueryin classDatabaseSessionImpl
-
setExternalTransactionController
public void setExternalTransactionController(ExternalTransactionController externalTransactionController) INTERNAL: Used for JTS integration internally by ServerPlatform.- Specified by:
setExternalTransactionControllerin interfaceDatabaseSession- Specified by:
setExternalTransactionControllerin interfaceSession- Overrides:
setExternalTransactionControllerin classAbstractSession- See Also:
-
setIntegrityChecker
PUBLIC: set the integrityChecker. IntegrityChecker holds all the ClassDescriptor Exceptions.- Specified by:
setIntegrityCheckerin interfaceSession- Overrides:
setIntegrityCheckerin classAbstractSession
-
setSessionLog
PUBLIC: Set the session log.- Specified by:
setSessionLogin interfaceSession- Overrides:
setSessionLogin classAbstractSession- See Also:
-
setLog
PUBLIC: Set the message log.- Specified by:
setLogin interfaceSession- Overrides:
setLogin classAbstractSession- See Also:
-
setProfiler
PUBLIC: Set the profiler for the session. This allows for performance operations to be profiled.- Specified by:
setProfilerin interfaceSession- Overrides:
setProfilerin classAbstractSession
-
setSessionNameByClass
INTERNAL: Set sessions indexed by class, each class can only have one default session. -
setSessionsByName
INTERNAL: Set sessions indexed by name. -
setSynchronized
public void setSynchronized(boolean synched) INTERNAL: Set isSynchronized flag to indicate that members of session broker are synchronized. This method should only be called by setSynchronized method of UnitOfWork obtained from either DatabaseSession Broker or ClientSession Broker.- Overrides:
setSynchronizedin classAbstractSession
-
writesCompleted
public void writesCompleted()INTERNAL: This method notifies the accessor that a particular sets of writes has completed. This notification can be used for such thing as flushing the batch mechanism- Overrides:
writesCompletedin classAbstractSession
-
initializeSequencing
public void initializeSequencing()ADVANCED: Creates sequencing object for the session broker. Typically there is no need for the user to call this method - it is called by login() and acquireClientSessionBroker.- Overrides:
initializeSequencingin classDatabaseSessionImpl
-
getSequencingHome
PROTECTED: Session broker doesn't have SequencingHome.- Overrides:
getSequencingHomein classDatabaseSessionImpl
-
getSequencing
PUBLIC: Return the Sequencing object used by the session.- Overrides:
getSequencingin classDatabaseSessionImpl
-
howManySequencingCallbacks
public int howManySequencingCallbacks()INTERNAL: Returns a number of member sessions that require sequencing callback. Always returns 0 if sequencing is not connected. -
isSequencingCallbackRequired
public boolean isSequencingCallbackRequired()INTERNAL: Indicates whether SequencingCallback is required. Always returns false if sequencing is not connected.- Overrides:
isSequencingCallbackRequiredin classDatabaseSessionImpl
-
shouldUseDescriptorAliases
public boolean shouldUseDescriptorAliases()PUBLIC: Indicates whether descriptors should use aliasDescriptors map. If aliasDescriptors is used then descriptors' aliases should be unique. -
setShouldUseDescriptorAliases
public void setShouldUseDescriptorAliases(boolean shouldUseDescriptorAliases) PUBLIC: Indicates whether descriptors should use aliasDescriptors map. If aliasDescriptors is used then descriptors' aliases should be unique.
-