Skip navigation links

Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


org.eclipse.persistence.sessions
Class DatasourceLogin

java.lang.Object
  extended by org.eclipse.persistence.sessions.DatasourceLogin

All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Login
Direct Known Subclasses:
DatabaseLogin, EISLogin, XMLLogin

public abstract class DatasourceLogin
extends java.lang.Object
implements Login, java.io.Serializable, java.lang.Cloneable

Purpose: Hold the configuration information necessary to connect to a datasource.

Description: This is an abstract class that defines the common datasource independent connection configuration. It is extended to support specific datasources such as JDBC, JCA, XML, etc.

See Also:
Serialized Form

Field Summary
protected  int cacheTransactionIsolation
          By default concurrency is optimized and the cache is not locked during reads or writes, This allows for concurrent reading and writing and should never cause any problems.
static int CONCURRENT_READ_WRITE
          Reads and unit of work merges can occur concurrently.
protected  Connector connector
          Provide a little flexibility for connecting to a database
private  boolean isEncryptedPasswordSet
          The securable object holder and flag
protected  org.eclipse.persistence.internal.databaseaccess.Platform platform
          Implementation of platform-specific behaviors.
protected  java.util.Properties properties
          Connection properties (e.g. user, password, and driver-specific settings)
private  org.eclipse.persistence.internal.security.SecurableObjectHolder securableObjectHolder
           
static int SYNCHRONIZED_READ_ON_WRITE
          Reads and unit of work merges will be serialized.
static int SYNCHRONIZED_WRITE
          Reads can occur concurrently but unit of work merges will be serialized.
static int SYNCRONIZED_OBJECT_LEVEL_READ_WRITE
          Writes to the cache (merge, object build/refresh will be synchronized as will cache access (cloning) based on when access is required.
static int SYNCRONIZED_OBJECT_LEVEL_READ_WRITE_DATABASE
          Writes to the cache (merge, object build/refresh will be synchronized as will cache access (cloning) based on database transaction.
protected  boolean usesExternalConnectionPooling
          True if we use an external connection pool such as WebLogic's JTS driver
protected  boolean usesExternalTransactionController
          True if we should use some external transaction service such as JTS.
static java.lang.String versionString
           
private static java.lang.String versionStringTemplate
          Version info

 

Constructor Summary
DatasourceLogin()
          PUBLIC: Create a new login.
DatasourceLogin(org.eclipse.persistence.internal.databaseaccess.Platform databasePlatform)
          ADVANCED: Create a new login for the given platform.

 

Method Summary
 void addSequence(Sequence sequence)
          Add sequence corresponding to the name Don't use if the session is connected.
 DatasourceLogin clone()
          INTERNAL: Clone the login.
 java.lang.Object connectToDatasource(org.eclipse.persistence.internal.databaseaccess.Accessor accessor, Session session)
          INTERNAL: Connect to the datasource, and return the driver level connection object.
 void dontUseExternalConnectionPooling()
          PUBLIC: Do not use external connection pooling.
 void dontUseExternalTransactionController()
          PUBLIC: Let EclipseLink control transactions instead of some external transaction service such as JTS.
 int getCacheTransactionIsolation()
          ADVANCED: By default concurrency is optimized and the cache is not locked more than required during reads or writes, This allows for virtual concurrent reading and writing and should never cause any problems.
 Connector getConnector()
          ADVANCED: Return the connector that will instantiate the connection.
 org.eclipse.persistence.internal.databaseaccess.Platform getDatasourcePlatform()
          PUBLIC: Return the datasource platform specific information.
 Sequence getDefaultSequence()
          Get default sequence
 Sequence getDefaultSequenceToWrite()
          INTERNAL: Used only for writing the login into XML or Java.
 java.lang.String getPassword()
          Return the password.
 DatabasePlatform getPlatform()
          INTERNAL: Return the database platform specific information.
 java.lang.String getPlatformClassName()
          INTERNAL: Return the name of the database platform class.
 java.util.Properties getProperties()
          INTERNAL: The properties are additional, driver-specific, connection information to be passed to the driver.
 java.lang.Object getProperty(java.lang.String name)
          PUBLIC: The properties are additional, driver-specific, connection information to be passed to the driver.
protected  org.eclipse.persistence.internal.security.SecurableObjectHolder getSecurableObjectHolder()
          INTERNAL: Return the encryption securable holder.
 Sequence getSequence(java.lang.String seqName)
          Get sequence corresponding to the name
 java.util.Map getSequences()
          Returns a map of sequence names to Sequences (may be null).
 java.util.Map getSequencesToWrite()
          INTERNAL: Used only for writing the login into XML or Java.
 java.lang.String getTableQualifier()
          PUBLIC: Return the qualifier for the all of the tables referenced by EclipseLink.
 java.lang.String getUserName()
          PUBLIC: The user name is the database login name.
static java.lang.String getVersion()
          PUBLIC: Return the EclipseLink version.
 boolean isConnectionHealthValidatedOnError()
          PUBLIC: This value defaults to false when not on a DatabaseLogin as the functionality has not been implemented for other datasource type.
private  java.util.Properties prepareProperties(java.util.Properties properties)
          SECURE: The password in the login properties is encrypted.
 void removeAllSequences()
          Remove all sequences but the default one.
 void removeProperty(java.lang.String propertyName)
          PUBLIC: Some drivers don't like the "user" and "password" properties.
 Sequence removeSequence(java.lang.String seqName)
          Remove sequence corresponding to name.
 void setCacheTransactionIsolation(int cacheTransactionIsolation)
          ADVANCED: By default concurrency is optimized and the cache is not locked more than required during reads or writes, This allows for virtual concurrent reading and writing and should never cause any problems.
 void setConnector(Connector connector)
          PUBLIC: Set the connector that will instantiate the connection.
 void setDatasourcePlatform(org.eclipse.persistence.internal.databaseaccess.Platform platform)
          PUBLIC: Set the database platform specific information.
 void setDefaultNullValue(java.lang.Class type, java.lang.Object value)
          PUBLIC: The default value to substitute for database NULLs can be configured on a per-class basis.
 void setDefaultSequence(Sequence sequence)
          Set default sequence
 void setEncryptedPassword(java.lang.String password)
          Set the encrypted password.
 void setEncryptionClassName(java.lang.String encryptionClassName)
          Sets the encryption class name
 void setPassword(java.lang.String password)
          Set the password.
 void setPlatform(org.eclipse.persistence.internal.databaseaccess.Platform platform)
          INTERNAL: Set the database platform specific information.
 void setPlatformClassName(java.lang.String platformClassName)
          INTERNAL: Set the name of the Platform to be used.
 void setPlatformClassName(java.lang.String platformClassName, java.lang.ClassLoader loader)
          INTERNAL: Set the name of the Platform to be created using the passed in class loader.
 void setProperties(java.util.Properties properties)
          PUBLIC: The properties are additional, driver-specific, connection information to be passed to the JDBC driver.
 void setProperty(java.lang.String propertyName, java.lang.Object propertyValue)
          PUBLIC: Some JDBC drivers require additional, driver-specific, properties.
 void setSequences(java.util.Map sequences)
          INTERNAL: Used only for reading the login from XML.
 void setTableQualifier(java.lang.String qualifier)
          PUBLIC: Set the default qualifier for all tables.
 void setTimestampQuery(ValueReadQuery timestampQuery)
          PUBLIC: Override the default query for returning a timestamp from the server.
 void setUserName(java.lang.String name)
          PUBLIC: The user name is the database login name.
 void setUsesExternalConnectionPooling(boolean usesExternalConnectionPooling)
          PUBLIC: Return whether EclipseLink uses some external connection pooling service such as a JDBC 2.0 driver.
 void setUsesExternalTransactionController(boolean usesExternalTransactionController)
          PUBLIC: Return whether EclipseLink uses some external transaction service such as JTS.
 boolean shouldAllowConcurrentReadWrite()
          INTERNAL: Used for cache isolation.
 boolean shouldSynchronizedReadOnWrite()
          INTERNAL: Used for cache isolation.
 boolean shouldSynchronizeObjectLevelReadWrite()
          INTERNAL: Used for Cache Isolation.
 boolean shouldSynchronizeObjectLevelReadWriteDatabase()
          INTERNAL: Used for Cache Isolation.
 boolean shouldSynchronizeWrites()
          INTERNAL: Used for Cache Isolation.
 boolean shouldUseExternalConnectionPooling()
          PUBLIC: Return whether EclipseLink uses some external connection pooling (e.g.
 boolean shouldUseExternalTransactionController()
          PUBLIC: Return whether EclipseLink uses some external transaction service such as JTS.
 java.lang.String toString()
          PUBLIC: Print all of the connection information.
 void useExternalConnectionPooling()
          PUBLIC: Use external connection pooling.
 void useExternalTransactionController()
          PUBLIC: Use an external transaction controller such as a JTS service
 void usePlatform(org.eclipse.persistence.internal.databaseaccess.Platform platform)
          ADVANCED: Set the database platform to be custom platform.

 

Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

 

Methods inherited from interface org.eclipse.persistence.sessions.Login
buildAccessor

 

Field Detail

versionStringTemplate

private static final java.lang.String versionStringTemplate
Version info
See Also:
Constant Field Values

versionString

public static java.lang.String versionString

properties

protected java.util.Properties properties
Connection properties (e.g. user, password, and driver-specific settings)

platform

protected org.eclipse.persistence.internal.databaseaccess.Platform platform
Implementation of platform-specific behaviors.

isEncryptedPasswordSet

private boolean isEncryptedPasswordSet
The securable object holder and flag

securableObjectHolder

private transient org.eclipse.persistence.internal.security.SecurableObjectHolder securableObjectHolder

connector

protected Connector connector
Provide a little flexibility for connecting to a database

usesExternalConnectionPooling

protected boolean usesExternalConnectionPooling
True if we use an external connection pool such as WebLogic's JTS driver

usesExternalTransactionController

protected boolean usesExternalTransactionController
True if we should use some external transaction service such as JTS.

cacheTransactionIsolation

protected int cacheTransactionIsolation
By default concurrency is optimized and the cache is not locked during reads or writes, This allows for concurrent reading and writing and should never cause any problems. If the application uses no form of locking the last unit of work to merge changes will win, with no locking it is possible only under this scenario for two unit of works to merge changes different than the database although highly unlikely and if occurred is the entire purpose of locking. This property allows for the isolation level of changes to the cache to be configured for sever situation and it is not suggest that this be changed.

CONCURRENT_READ_WRITE

public static final int CONCURRENT_READ_WRITE
Reads and unit of work merges can occur concurrently.
See Also:
Constant Field Values

SYNCHRONIZED_WRITE

public static final int SYNCHRONIZED_WRITE
Reads can occur concurrently but unit of work merges will be serialized.
See Also:
Constant Field Values

SYNCHRONIZED_READ_ON_WRITE

public static final int SYNCHRONIZED_READ_ON_WRITE
Reads and unit of work merges will be serialized.
See Also:
Constant Field Values

SYNCRONIZED_OBJECT_LEVEL_READ_WRITE

public static final int SYNCRONIZED_OBJECT_LEVEL_READ_WRITE
Writes to the cache (merge, object build/refresh will be synchronized as will cache access (cloning) based on when access is required.
See Also:
Constant Field Values

SYNCRONIZED_OBJECT_LEVEL_READ_WRITE_DATABASE

public static final int SYNCRONIZED_OBJECT_LEVEL_READ_WRITE_DATABASE
Writes to the cache (merge, object build/refresh will be synchronized as will cache access (cloning) based on database transaction.
See Also:
Constant Field Values

Constructor Detail

DatasourceLogin

public DatasourceLogin()
PUBLIC: Create a new login.

DatasourceLogin

public DatasourceLogin(org.eclipse.persistence.internal.databaseaccess.Platform databasePlatform)
ADVANCED: Create a new login for the given platform.

Method Detail

getSecurableObjectHolder

protected org.eclipse.persistence.internal.security.SecurableObjectHolder getSecurableObjectHolder()
INTERNAL: Return the encryption securable holder. Lazy initialize to handle serialization.

clone

public DatasourceLogin clone()
INTERNAL: Clone the login. This also clones the platform as it is internal to the login.
Specified by:
clone in interface Login
Overrides:
clone in class java.lang.Object

connectToDatasource

public java.lang.Object connectToDatasource(org.eclipse.persistence.internal.databaseaccess.Accessor accessor,
                                            Session session)
                                     throws DatabaseException
INTERNAL: Connect to the datasource, and return the driver level connection object.
Specified by:
connectToDatasource in interface Login
Throws:
DatabaseException

getCacheTransactionIsolation

public int getCacheTransactionIsolation()
ADVANCED: By default concurrency is optimized and the cache is not locked more than required during reads or writes, This allows for virtual concurrent reading and writing and should never cause any problems. If the application uses no form of locking the last unit of work to merge changes will win, with no locking it is possible only under this scenario for two unit of works to merge changes different than the database although highly unlikely and if occurred is the entire purpose of locking and locking is the suggested solution if this is a problem. This property allows for the isolation level of changes to the cache to be configured for sever situations and it is not suggest that this be changed.

Setting are: