|
EclipseLink1.0 - 20080707 API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.persistence.internal.sessions.AbstractSession
org.eclipse.persistence.sessions.server.ClientSession
public class ClientSession
Purpose: Acts as a client to the server session.
Description: This session is brokered by the server session for use in three-tiered applications. It is used to store the context of the connection, i.e. the login to be used for this cleint. This allows each client connected to the server to contain its own user login.
Responsibilities:
This class is an implementation of Session
.
Please refer to that class for a full API. The public interface should be used.
Server
,
05/28/2008-1.0M8 Andrei Ilitchev
- 224964: Provide support for Proxy Authentication through JPA.
Added a new constructor that takes Properties.
,
Serialized FormField Summary | |
---|---|
protected ConnectionPolicy |
connectionPolicy
|
protected boolean |
isActive
|
protected ServerSession |
parent
|
protected org.eclipse.persistence.internal.sequencing.Sequencing |
sequencing
|
protected org.eclipse.persistence.internal.databaseaccess.Accessor |
writeConnection
|
Fields inherited from class org.eclipse.persistence.internal.sessions.AbstractSession |
---|
accessor, activeCommandThreads, broker, commandManager, commitManager, defaultReferenceMode, eventManager, exceptionHandler, externalTransactionController, identityMapAccessor, integrityChecker, isFinalizersEnabled, isInBroker, isInProfile, isSynchronized, jpaQueries, lastDescriptorAccessed, logSessionString, name, numberOfActiveUnitsOfWork, platform, profiler, project, properties, queries, sessionLog, shouldPropagateChanges, transactionMutex, wasJTSTransactionInternallyStarted |
Fields inherited from interface org.eclipse.persistence.sessions.coordination.CommandProcessor |
---|
LOG_DEBUG, LOG_ERROR, LOG_INFO, LOG_WARNING |
Constructor Summary | |
---|---|
protected |
ClientSession(Project project)
|
|
ClientSession(ServerSession parent,
ConnectionPolicy connectionPolicy)
INTERNAL: Create and return a new client session. |
|
ClientSession(ServerSession parent,
ConnectionPolicy connectionPolicy,
java.util.Map properties)
|
Method Summary | |
---|---|
void |
basicBeginTransaction()
INTERNAL: This is internal to the unit of work and should never be called otherwise. |
void |
basicCommitTransaction()
INTERNAL: This is internal to the unit of work and should not be called otherwise. |
void |
basicRollbackTransaction()
INTERNAL: This is internal to the unit of work and should not be called otherwise. |
void |
connect()
INTERNAL: Connect the session only (this must be the write connection as the read is shared). |
boolean |
containsQuery(java.lang.String queryName)
INTERNAL: Was PUBLIC: customer will be redirected to Session . |
void |
disconnect()
INTERNAL: Disconnect the accessor only (this must be the write connection as the read is shared). |
org.eclipse.persistence.internal.databaseaccess.Accessor |
getAccessor()
INTERNAL: Return the read or write connection depending on the transaction state. |
CommandManager |
getCommandManager()
INTERNAL: Return the manager that allows this processor to receive or propagate commands from/to TopLink cluster |
ConnectionPolicy |
getConnectionPolicy()
ADVANCED: This method will return the connection policy that was used during the acquisition of this client session. |
java.util.Map |
getDescriptors()
INTERNAL: Was PUBLIC: customer will be redirected to Session . |
org.eclipse.persistence.internal.sessions.AbstractSession |
getExecutionSession(DatabaseQuery query)
INTERNAL: Gets the session which this query will be executed on. |
ServerSession |
getParent()
INTERNAL: Return the parent. |
org.eclipse.persistence.internal.sessions.AbstractSession |
getParentIdentityMapSession(DatabaseQuery query,
boolean canReturnSelf,
boolean terminalOnly)
INTERNAL: Gets the next link in the chain of sessions followed by a query's check early return, the chain of sessions with identity maps all the way up to the root session. |
java.lang.Object |
getProperty(java.lang.String name)
Search for and return the user defined property from this client session, if it not found then search for the property from parent. |
DatabaseQuery |
getQuery(java.lang.String name)
INTERNAL: Was PUBLIC: customer will be redirected to Session . |
DatabaseQuery |
getQuery(java.lang.String name,
java.util.Vector args)
INTERNAL: |
org.eclipse.persistence.internal.sequencing.Sequencing |
getSequencing()
INTERNAL: Return the Sequencing object used by the session. |
ServerPlatform |
getServerPlatform()
INTERNAL: Marked internal as this is not customer API but helper methods for accessing the server platform from within TopLink's other sessions types (ie not DatabaseSession) |
java.lang.String |
getSessionTypeString()
INTERNAL: Returns the type of session, its class. |
org.eclipse.persistence.internal.databaseaccess.Accessor |
getWriteConnection()
INTERNAL: Return the connection to be used for database modification. |
protected boolean |
hasWriteConnection()
INTERNAL: Return if this session has been connected. |
void |
initializeIdentityMapAccessor()
INTERNAL: Set up the IdentityMapManager. |
void |
initializeSequencing()
INTERNAL: was ADVANCED: Creates sequencing object for the session. |
boolean |
isActive()
INTERNAL: Was PUBLIC: customer will be redirected to Session . |
boolean |
isClientSession()
INTERNAL: Return if this session is a client session. |
boolean |
isConnected()
INTERNAL: Was PUBLIC: customer will be redirected to Session . |
boolean |
isExclusiveConnectionRequired()
INTERNAL: This method is called in case externalConnectionPooling is used. |
void |
postConnectExternalConnection(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
INTERNAL: This method is called in case externalConnectionPooling is used right after the accessor is connected. |
void |
preDisconnectExternalConnection(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
INTERNAL: This method is called in case externalConnectionPooling is used right before the accessor is disconnected. |
void |
release()
INTERNAL: Was PUBLIC: customer will be redirected to Session . |
void |
releaseJTSConnection()
INTERNAL: Called in the end of beforeCompletion of external transaction sychronization listener. |
void |
releaseReadConnection(org.eclipse.persistence.internal.databaseaccess.Accessor connection)
INTERNAL: |
protected void |
releaseWriteConnection()
INTERNAL: This is internal to the unit of work and should not be called otherwise. |
void |
setConnectionPolicy(ConnectionPolicy connectionPolicy)
INTERNAL: Set the connection policy. |
protected void |
setIsActive(boolean isActive)
INTERNAL: Set if the client session is actvie (has not been released). |
protected void |
setParent(ServerSession parent)
INTERNAL: Set the parent. |
void |
setWriteConnection(org.eclipse.persistence.internal.databaseaccess.Accessor writeConnection)
INTERNAL: Set the connection to be used for database modification. |
boolean |
shouldPropagateChanges()
INTERNAL: Return whether changes should be propagated to TopLink cluster. |
java.lang.String |
toString()
INTERNAL: Print the connection status with the session. |
Methods inherited from class org.eclipse.persistence.internal.sessions.AbstractSession |
---|
acquireHistoricalSession, acquireNonSynchronizedUnitOfWork, acquireNonSynchronizedUnitOfWork, acquireUnitOfWork, acquireUnitOfWork, addAlias, addJPAQuery, addQuery, addQuery, basicBeginTransaction, beginExternalTransaction, beginTransaction, checkHierarchyForDescriptor, clearIntegrityChecker, clearLastDescriptorAccessed, clearProfile, clone, commitExternalTransaction, commitTransaction, compareObjects, compareObjectsDontMatch, config, copyDescriptorNamedQueries, copyObject, copyObject, copyReadOnlyClasses, deleteAllObjects, deleteAllObjects, deleteObject, doesObjectExist, dontLogMessages, endOperationProfile, endOperationProfile, executeCall, executeNonSelectingCall, executeNonSelectingSQL, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeSelectingCall, executeSQL, fine, finer, finest, getAccessor, getAccessor, getActiveCommandThreads, getActiveSession, getActiveUnitOfWork, getAliasDescriptors, getAllQueries, getAsOfClause, getBroker, getClassDescriptor, getClassDescriptor, getClassDescriptorForAlias, getCommitManager, getDatasourceLogin, getDatasourcePlatform, getDefaultReadOnlyClasses, getDefaultReferenceMode, getDescriptor, getDescriptor, getDescriptorForAlias, getEventManager, getExceptionHandler, getExceptionHandlerClass, getExternalTransactionController, getIdentityMapAccessor, getIdentityMapAccessorInstance, getIntegrityChecker, getJPAQueries, getLog, getLogin, getLogLevel, getLogLevel, getLogSessionString, getName, getNextQueryId, getNextSequenceNumberValue, getNumberOfActiveUnitsOfWork, getParentIdentityMapSession, getPlatform, getPlatform, getProfiler, getProject, getProperties, getQueries, getQuery, getRootSession, getSessionForClass, getSessionLog, getTransactionMutex, handleException, handleSevere, hasBroker, hasCommitManager, hasDescriptor, hasExceptionHandler, hasExternalTransactionController, hasProperties, incrementProfile, info, insertObject, internalExecuteQuery, isBroker, isClassReadOnly, isClassReadOnly, isDatabaseSession, isDistributedSession, isExclusiveIsolatedClientSession, isFinalizersEnabled, isHistoricalSession, isInBroker, isInProfile, isInTransaction, isIsolatedClientSession, isRemoteSession, isRemoteUnitOfWork, isServerSession, isSessionBroker, isSynchronized, isUnitOfWork, keyFromObject, keyFromObject, log, log, log, log, log, log, log, log, log, log, logMessage, logMessage, logThrowable, prepareDatabaseQuery, processCommand, readAllObjects, readAllObjects, readAllObjects, readAllObjects, readObject, readObject, readObject, readObject, readObject, refreshAndLockObject, refreshAndLockObject, refreshObject, registerFinalizer, releaseUnitOfWork, removeProperty, removeQuery, removeQuery, rollbackExternalTransaction, rollbackTransaction, setAccessor, setBroker, setCommandManager, setCommitManager, setDatasourceLogin, setDefaultReferenceMode, setEventManager, setExceptionHandler, setExternalTransactionController, setIntegrityChecker, setIsFinalizersEnabled, setIsInBroker, setIsInProfile, setLog, setLogin, setLogin, setLogLevel, setName, setNumberOfActiveUnitsOfWork, setProfiler, setProject, setProperties, setProperty, setQueries, setSessionLog, setShouldPropagateChanges, setSynchronized, setTransactionMutex, setWasJTSTransactionInternallyStarted, severe, shouldLog, shouldLogMessages, shouldLogMessages, startOperationProfile, startOperationProfile, unwrapObject, updateObject, updateProfile, validateCache, validateQuery, verifyDelete, warning, wasJTSTransactionInternallyStarted, wrapObject, writeAllObjects, writeAllObjectsWithChangeSet, writeObject, writesCompleted |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected ServerSession parent
protected ConnectionPolicy connectionPolicy
protected org.eclipse.persistence.internal.databaseaccess.Accessor writeConnection
protected boolean isActive
protected org.eclipse.persistence.internal.sequencing.Sequencing sequencing
Constructor Detail |
---|
public ClientSession(ServerSession parent, ConnectionPolicy connectionPolicy)
public ClientSession(ServerSession parent, ConnectionPolicy connectionPolicy, java.util.Map properties)
protected ClientSession(Project project)
Method Detail |
---|
public void releaseJTSConnection()
releaseJTSConnection
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void basicBeginTransaction()
basicBeginTransaction
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void basicCommitTransaction()
basicCommitTransaction
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void basicRollbackTransaction()
basicRollbackTransaction
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void connect() throws DatabaseException
DatabaseException
public boolean containsQuery(java.lang.String queryName)
Session
.
Return true if the pre-defined query is defined on the session.
containsQuery
in interface Session
containsQuery
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void disconnect() throws DatabaseException
DatabaseException
public org.eclipse.persistence.internal.databaseaccess.Accessor getAccessor()
getAccessor
in class org.eclipse.persistence.internal.sessions.AbstractSession
public ConnectionPolicy getConnectionPolicy()
public java.util.Map getDescriptors()
Session
.
Return all registered descriptors.
The clients session inherits its parent's descriptors.
getDescriptors
in interface Session
getDescriptors
in class org.eclipse.persistence.internal.sessions.AbstractSession
public org.eclipse.persistence.internal.sessions.AbstractSession getParentIdentityMapSession(DatabaseQuery query, boolean canReturnSelf, boolean terminalOnly)
Used for session broker which delegates to registered sessions, or UnitOfWork which checks parent identity map also.
getParentIdentityMapSession
in class org.eclipse.persistence.internal.sessions.AbstractSession
canReturnSelf
- true when method calls itself. If the path
starting at this
is acceptable. Sometimes true if want to
move to the first valid session, i.e. executing on ClientSession when really
should be on ServerSession.terminalOnly
- return the session we will execute the call on, not
the next step towards it.
public java.lang.Object getProperty(java.lang.String name)
getProperty
in interface Session
getProperty
in class org.eclipse.persistence.internal.sessions.AbstractSession
public org.eclipse.persistence.internal.sessions.AbstractSession getExecutionSession(DatabaseQuery query)
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.
getExecutionSession
in class org.eclipse.persistence.internal.sessions.AbstractSession
query
- may store session name or reference class for brokers case
public ServerSession getParent()
getParent
in class org.eclipse.persistence.internal.sessions.AbstractSession
public DatabaseQuery getQuery(java.lang.String name)
Session
.
Return the query from the session pre-defined queries with the given name.
This allows for common queries to be pre-defined, reused and executed by name.
getQuery
in interface Session
getQuery
in class org.eclipse.persistence.internal.sessions.AbstractSession
public DatabaseQuery getQuery(java.lang.String name, java.util.Vector args)
getQuery
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void initializeSequencing()
public org.eclipse.persistence.internal.sequencing.Sequencing getSequencing()
getSequencing
in class org.eclipse.persistence.internal.sessions.AbstractSession
public ServerPlatform getServerPlatform()
getServerPlatform
in interface Session
getServerPlatform
in class org.eclipse.persistence.internal.sessions.AbstractSession
public java.lang.String getSessionTypeString()
Override to hide from the user when they are using an internal subclass of a known class.
A user does not need to know that their UnitOfWork is a non-deferred UnitOfWork, or that their ClientSession is an IsolatedClientSession.
getSessionTypeString
in class org.eclipse.persistence.internal.sessions.AbstractSession
public org.eclipse.persistence.internal.databaseaccess.Accessor getWriteConnection()
protected boolean hasWriteConnection()
public void initializeIdentityMapAccessor()
initializeIdentityMapAccessor
in class org.eclipse.persistence.internal.sessions.AbstractSession
public boolean isActive()
Session
.
Return if the client session is actvie (has not been released).
public boolean isClientSession()
isClientSession
in interface Session
isClientSession
in class org.eclipse.persistence.internal.sessions.AbstractSession
public boolean isConnected()
Session
.
Return if this session has been connected to the database.
isConnected
in interface Session
isConnected
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void release() throws DatabaseException
Session
.
Release the client session.
This releases the client session back to it server.
Normally this will logout of the client session's connection,
and allow the client session to garbage collect.
release
in interface Session
release
in class org.eclipse.persistence.internal.sessions.AbstractSession
DatabaseException
protected void releaseWriteConnection()
public void setConnectionPolicy(ConnectionPolicy connectionPolicy)
protected void setIsActive(boolean isActive)
protected void setParent(ServerSession parent)
public void setWriteConnection(org.eclipse.persistence.internal.databaseaccess.Accessor writeConnection)
public java.lang.String toString()
toString
in class org.eclipse.persistence.internal.sessions.AbstractSession
public CommandManager getCommandManager()
getCommandManager
in interface CommandProcessor
getCommandManager
in class org.eclipse.persistence.internal.sessions.AbstractSession
#CommandManager
public boolean shouldPropagateChanges()
shouldPropagateChanges
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void releaseReadConnection(org.eclipse.persistence.internal.databaseaccess.Accessor connection)
releaseReadConnection
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void postConnectExternalConnection(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
postConnectExternalConnection
in class org.eclipse.persistence.internal.sessions.AbstractSession
public void preDisconnectExternalConnection(org.eclipse.persistence.internal.databaseaccess.Accessor accessor)
preDisconnectExternalConnection
in class org.eclipse.persistence.internal.sessions.AbstractSession
public boolean isExclusiveConnectionRequired()
isExclusiveConnectionRequired
in class org.eclipse.persistence.internal.sessions.AbstractSession
|
EclipseLink1.0 - 20080707 API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |