org.firebirdsql.ds
Class FBAbstractCommonDataSource

java.lang.Object
  extended by org.firebirdsql.ds.RootCommonDataSource
      extended by org.firebirdsql.ds.FBAbstractCommonDataSource
All Implemented Interfaces:
javax.sql.CommonDataSource, FirebirdConnectionProperties
Direct Known Subclasses:
FBConnectionPoolDataSource, FBXADataSource

public abstract class FBAbstractCommonDataSource
extends RootCommonDataSource
implements FirebirdConnectionProperties

Abstract class for properties and behaviour common to DataSources, XADataSources and ConnectionPoolDataSources

Since:
2.2
Author:
Mark Rotteveel

Field Summary
protected  java.lang.Object lock
           
protected static java.lang.String REF_DATABASE_NAME
           
protected static java.lang.String REF_DESCRIPTION
           
protected static java.lang.String REF_PORT_NUMBER
           
protected static java.lang.String REF_PROPERTIES
           
protected static java.lang.String REF_SERVER_NAME
           
 
Constructor Summary
FBAbstractCommonDataSource()
           
 
Method Summary
protected abstract  void checkNotStarted()
          Method to check if this DataSource has not yet started.
 int getBlobBufferSize()
           
 int getBuffersNumber()
           
 java.lang.String getCharSet()
           
protected  FBConnectionProperties getConnectionProperties()
           
 int getConnectTimeout()
          Get the current connect timeout.
 java.lang.String getDatabase()
          Deprecated. 
 java.lang.String getDatabaseName()
           
 DatabaseParameterBuffer getDatabaseParameterBuffer()
          Get the database parameter buffer corresponding to the current connection request information.
 java.lang.String getDefaultIsolation()
          Get the default transaction isolation level as string.
 int getDefaultTransactionIsolation()
          Get the default transaction isolation level.
 java.lang.String getDescription()
           
 java.lang.String getEncoding()
           
 int getLoginTimeout()
           This property is an alias for the connectTimeout property.
 java.lang.String getNonStandardProperty(java.lang.String key)
          Method to get the value of properties which are not exposed through JavaBeans-style setters.
 java.lang.String getPassword()
           
 int getPortNumber()
           
 java.lang.String getRoleName()
           
 java.lang.String getServerName()
           
 int getSocketBufferSize()
           
 int getSoTimeout()
          Get the current Socket blocking timeout (SoTimeout).
 java.lang.String getSqlDialect()
           
 java.lang.String getTpbMapping()
          Get the used TPB mapping.
 TransactionParameterBuffer getTransactionParameters(int isolation)
          Get the transaction parameter buffer corresponding to the current connection request information.
 java.lang.String getType()
           
 java.lang.String getUser()
           
 java.lang.String getUserName()
          Deprecated. 
 java.lang.String getUseTranslation()
           
 boolean isDefaultResultSetHoldable()
          Get the default ResultSet holdability.
 boolean isTimestampUsesLocalTimezone()
           
 boolean isUseFirebirdAutocommit()
          Get whether to use Firebird autocommit (experimental).
 boolean isUseStandardUdf()
           
 boolean isUseStreamBlobs()
           
 void setBlobBufferSize(int bufferSize)
           
 void setBuffersNumber(int buffersNumber)
           
 void setCharSet(java.lang.String charSet)
           
protected  void setConnectionProperties(FBConnectionProperties connectionProperties)
           
 void setConnectTimeout(int connectTimeout)
          Set the connect timeout.
protected  void setDatabase()
          Sets the database property of connectionProperties.
 void setDatabase(java.lang.String database)
          Deprecated. 
 void setDatabaseName(java.lang.String databaseName)
          Sets the databaseName of this datasource.
 void setDefaultIsolation(java.lang.String isolation)
          Set the default transaction isolation level as string.
 void setDefaultResultSetHoldable(boolean isHoldable)
          Sets the default ResultSet holdability.
 void setDefaultTransactionIsolation(int defaultIsolationLevel)
          Set the default transaction isolation level.
 void setDescription(java.lang.String description)
           
 void setEncoding(java.lang.String encoding)
           
 void setLoginTimeout(int seconds)
           This property is an alias for the connectTimeout property.
 void setNonStandardProperty(java.lang.String propertyMapping)
          Method that allows setting non-standard property in the form "key=value" form.
 void setNonStandardProperty(java.lang.String key, java.lang.String value)
          Method to set properties which are not exposed through JavaBeans-style setters.
 void setPassword(java.lang.String password)
           
 void setPortNumber(int portNumber)
           
 void setRoleName(java.lang.String roleName)
           
 void setServerName(java.lang.String serverName)
           
 void setSocketBufferSize(int socketBufferSize)
           
 void setSoTimeout(int soTimeout)
          Set the Socket blocking timeout (SoTimeout).
 void setSqlDialect(java.lang.String sqlDialect)
           
 void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)
           
 void setTpbMapping(java.lang.String tpbMapping)
          Set path to the properties file with the TPB mapping.
 void setTransactionParameters(int isolation, TransactionParameterBuffer tpb)
          Set transaction parameters for the specified transaction isolation level.
 void setType(java.lang.String type)
           
 void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
          Set whether to use Firebird autocommit (experimental).
 void setUser(java.lang.String user)
           
 void setUserName(java.lang.String userName)
          Deprecated. 
 void setUseStandardUdf(boolean useStandardUdf)
           
 void setUseStreamBlobs(boolean useStreamBlobs)
           
 void setUseTranslation(java.lang.String translationPath)
           
protected static void updateReference(javax.naming.Reference ref, FBAbstractCommonDataSource instance)
          Updates the supplied reference with RefAddr properties relevant to this class.
 
Methods inherited from class org.firebirdsql.ds.RootCommonDataSource
getLogWriter, getParentLogger, setLogWriter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REF_DATABASE_NAME

protected static final java.lang.String REF_DATABASE_NAME
See Also:
Constant Field Values

REF_PORT_NUMBER

protected static final java.lang.String REF_PORT_NUMBER
See Also:
Constant Field Values

REF_SERVER_NAME

protected static final java.lang.String REF_SERVER_NAME
See Also:
Constant Field Values

REF_DESCRIPTION

protected static final java.lang.String REF_DESCRIPTION
See Also:
Constant Field Values

REF_PROPERTIES

protected static final java.lang.String REF_PROPERTIES
See Also:
Constant Field Values

lock

protected final java.lang.Object lock
Constructor Detail

FBAbstractCommonDataSource

public FBAbstractCommonDataSource()
Method Detail

checkNotStarted

protected abstract void checkNotStarted()
                                 throws java.lang.IllegalStateException
Method to check if this DataSource has not yet started.

Implementations should throw IllegalStateException when the DataSource is already in use and modifying properties is not allowed.

Throws:
java.lang.IllegalStateException - When the DataSource is already in use

getDescription

public java.lang.String getDescription()

setDescription

public void setDescription(java.lang.String description)

getServerName

public final java.lang.String getServerName()

setServerName

public final void setServerName(java.lang.String serverName)

getPortNumber

public final int getPortNumber()

setPortNumber

public final void setPortNumber(int portNumber)

getDatabaseName

public final java.lang.String getDatabaseName()

setDatabaseName

public final void setDatabaseName(java.lang.String databaseName)
Sets the databaseName of this datasource.

The databaseName is the filepath or alias of the database only, so it should not include serverName and portNumber.

Parameters:
databaseName - Databasename (filepath or alias)

getType

public final java.lang.String getType()
Specified by:
getType in interface FirebirdConnectionProperties
Returns:
type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.

setType

public final void setType(java.lang.String type)
Specified by:
setType in interface FirebirdConnectionProperties
Parameters:
type - type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.

getUser

public java.lang.String getUser()

setUser

public void setUser(java.lang.String user)

getPassword

public java.lang.String getPassword()
Specified by:
getPassword in interface FirebirdConnectionProperties
Returns:
password corresponding to the specified user name.

getRoleName

public java.lang.String getRoleName()
Specified by:
getRoleName in interface FirebirdConnectionProperties
Returns:
SQL role to use.

setRoleName

public void setRoleName(java.lang.String roleName)
Specified by:
setRoleName in interface FirebirdConnectionProperties
Parameters:
roleName - SQL role to use.

setPassword

public void setPassword(java.lang.String password)
Specified by:
setPassword in interface FirebirdConnectionProperties
Parameters:
password - password corresponding to the specified user name.

getCharSet

public final java.lang.String getCharSet()
Specified by:
getCharSet in interface FirebirdConnectionProperties
Returns:
Character set for the connection.
See Also:
FirebirdConnectionProperties.setCharSet(String)

setCharSet

public final void setCharSet(java.lang.String charSet)
Specified by:
setCharSet in interface FirebirdConnectionProperties
Parameters:
charSet - Character set for the connection. Similar to encoding property, but accepts Java names instead of Firebird ones.

getEncoding

public final java.lang.String getEncoding()
Specified by:
getEncoding in interface FirebirdConnectionProperties
Returns:
Character encoding for the connection.
See Also:
FirebirdConnectionProperties.setEncoding(String)

setEncoding

public final void setEncoding(java.lang.String encoding)
Specified by:
setEncoding in interface FirebirdConnectionProperties
Parameters:
encoding - Firebird name of the character encoding for the connection. See Firebird documentation for more information.

getLoginTimeout

public int getLoginTimeout()
                    throws java.sql.SQLException

This property is an alias for the connectTimeout property.

Specified by:
getLoginTimeout in interface javax.sql.CommonDataSource
Throws:
java.sql.SQLException

setLoginTimeout

public void setLoginTimeout(int seconds)
                     throws java.sql.SQLException

This property is an alias for the connectTimeout property.

Specified by:
setLoginTimeout in interface javax.sql.CommonDataSource
Throws:
java.sql.SQLException

getConnectTimeout

public int getConnectTimeout()
Description copied from interface: FirebirdConnectionProperties
Get the current connect timeout.

Specified by:
getConnectTimeout in interface FirebirdConnectionProperties
Returns:
Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)

setConnectTimeout

public void setConnectTimeout(int connectTimeout)
Description copied from interface: FirebirdConnectionProperties
Set the connect timeout.

Specified by:
setConnectTimeout in interface FirebirdConnectionProperties
Parameters:
connectTimeout - Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)

getDatabase

@Deprecated
public java.lang.String getDatabase()
Deprecated. 

Specified by:
getDatabase in interface FirebirdConnectionProperties
Returns:
path to the database including the server name and the port, if needed.

setDatabase

@Deprecated
public void setDatabase(java.lang.String database)
Deprecated. 

Specified by:
setDatabase in interface FirebirdConnectionProperties
Parameters:
database - path to the database including the server name and the port, if needed.

getBlobBufferSize

public int getBlobBufferSize()
Specified by:
getBlobBufferSize in interface FirebirdConnectionProperties
Returns:
BLOB buffer size in bytes.

setBlobBufferSize

public void setBlobBufferSize(int bufferSize)
Specified by:
setBlobBufferSize in interface FirebirdConnectionProperties
Parameters:
bufferSize - size of the BLOB buffer in bytes.

getSqlDialect

public java.lang.String getSqlDialect()
Specified by:
getSqlDialect in interface FirebirdConnectionProperties
Returns:
SQL dialect of the client.

setSqlDialect

public void setSqlDialect(java.lang.String sqlDialect)
Specified by:
setSqlDialect in interface FirebirdConnectionProperties
Parameters:
sqlDialect - SQL dialect of the client.

getUseTranslation

public java.lang.String getUseTranslation()
Specified by:
getUseTranslation in interface FirebirdConnectionProperties
Returns:
path to the character translation table.

setUseTranslation

public void setUseTranslation(java.lang.String translationPath)
Specified by:
setUseTranslation in interface FirebirdConnectionProperties
Parameters:
translationPath - path to the character translation table.

isUseStreamBlobs

public boolean isUseStreamBlobs()
Specified by:
isUseStreamBlobs in interface FirebirdConnectionProperties
Returns:
true if stream blobs should be created, otherwise false.

setUseStreamBlobs

public void setUseStreamBlobs(boolean useStreamBlobs)
Specified by:
setUseStreamBlobs in interface FirebirdConnectionProperties
Parameters:
useStreamBlobs - true if stream blobs should be created, otherwise false.

isUseStandardUdf

public boolean isUseStandardUdf()
Specified by:
isUseStandardUdf in interface FirebirdConnectionProperties
Returns:
true if driver should assume that standard UDF are installed.

setUseStandardUdf

public void setUseStandardUdf(boolean useStandardUdf)
Specified by:
setUseStandardUdf in interface FirebirdConnectionProperties
Parameters:
useStandardUdf - true if driver should assume that standard UDF are installed.

getSocketBufferSize

public int getSocketBufferSize()
Specified by:
getSocketBufferSize in interface FirebirdConnectionProperties
Returns:
socket buffer size in bytes, or -1 is not specified.

setSocketBufferSize

public void setSocketBufferSize(int socketBufferSize)
Specified by:
setSocketBufferSize in interface FirebirdConnectionProperties
Parameters:
socketBufferSize - socket buffer size in bytes.

isTimestampUsesLocalTimezone

public boolean isTimestampUsesLocalTimezone()
Specified by:
isTimestampUsesLocalTimezone in interface FirebirdConnectionProperties
Returns:
true if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.

setTimestampUsesLocalTimezone

public void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)
Specified by:
setTimestampUsesLocalTimezone in interface FirebirdConnectionProperties
Parameters:
timestampUsesLocalTimezone - true if the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.

getUserName

@Deprecated
public java.lang.String getUserName()
Deprecated. 

Specified by:
getUserName in interface FirebirdConnectionProperties
Returns:
name of the user that will be used when connecting to the database.

setUserName

@Deprecated
public void setUserName(java.lang.String userName)
Deprecated. 

Specified by:
setUserName in interface FirebirdConnectionProperties
Parameters:
userName - name of the user that will be used when connecting to the database.

getBuffersNumber

public int getBuffersNumber()
Specified by:
getBuffersNumber in interface FirebirdConnectionProperties
Returns:
number of cache buffers that should be allocated for this connection, should be specified for ClassicServer instances, SuperServer has a server-wide configuration parameter.

setBuffersNumber

public void setBuffersNumber(int buffersNumber)
Specified by:
setBuffersNumber in interface FirebirdConnectionProperties
Parameters:
buffersNumber - number of cache buffers that should be allocated for this connection, should be specified for ClassicServer instances, SuperServer has a server-wide configuration parameter.

getDatabaseParameterBuffer

public DatabaseParameterBuffer getDatabaseParameterBuffer()
                                                   throws java.sql.SQLException
Description copied from interface: FirebirdConnectionProperties
Get the database parameter buffer corresponding to the current connection request information.

Specified by:
getDatabaseParameterBuffer in interface FirebirdConnectionProperties
Returns:
instance of DatabaseParameterBuffer.
Throws:
java.sql.SQLException - if database parameter buffer cannot be created.

getTpbMapping

public java.lang.String getTpbMapping()
Description copied from interface: FirebirdConnectionProperties
Get the used TPB mapping.

Specified by:
getTpbMapping in interface FirebirdConnectionProperties
Returns:
path to the TPB mapping.
See Also:
FirebirdConnectionProperties.setTpbMapping(String)

setTpbMapping

public void setTpbMapping(java.lang.String tpbMapping)
Description copied from interface: FirebirdConnectionProperties
Set path to the properties file with the TPB mapping. The path begins with the protocol specification followed by the path to the resource. A special protocol "res:" should be used to specify resource in the classpath.

For the compatibility reasons, if no protocol is specified, classpath is used by default.

Properties file contains a mapping between the transaction isolation level (name of the constant in the Connection interface and a comma-separated list of TPB parameters.

Specified by:
setTpbMapping in interface FirebirdConnectionProperties
Parameters:
tpbMapping - path to the properties file.

getDefaultTransactionIsolation

public int getDefaultTransactionIsolation()
Description copied from interface: FirebirdConnectionProperties
Get the default transaction isolation level. This is the transaction isolation level for the newly created connections.

Specified by:
getDefaultTransactionIsolation in interface FirebirdConnectionProperties
Returns:
default transaction isolation level.

setDefaultTransactionIsolation

public void setDefaultTransactionIsolation(int defaultIsolationLevel)
Description copied from interface: FirebirdConnectionProperties
Set the default transaction isolation level.

Specified by:
setDefaultTransactionIsolation in interface FirebirdConnectionProperties
Parameters:
defaultIsolationLevel - default transaction isolation level.

getDefaultIsolation

public java.lang.String getDefaultIsolation()
Description copied from interface: FirebirdConnectionProperties
Get the default transaction isolation level as string. This method is complementary to the FirebirdConnectionProperties.getDefaultTransactionIsolation(), however it takes a string as parameter instead of a numeric constant.

Specified by:
getDefaultIsolation in interface FirebirdConnectionProperties
Returns:
default transaction isolation as string.
See Also:
FirebirdConnectionProperties.setDefaultIsolation(String)

setDefaultIsolation

public void setDefaultIsolation(java.lang.String isolation)
Description copied from interface: FirebirdConnectionProperties
Set the default transaction isolation level as string. This method is complementary to the FirebirdConnectionProperties.setDefaultTransactionIsolation(int), however it takes a string as parameter instead of a numeric constant.

Following strings are allowed:

Specified by:
setDefaultIsolation in interface FirebirdConnectionProperties
Parameters:
isolation - string constant representing a default isolation level.

getTransactionParameters

public TransactionParameterBuffer getTransactionParameters(int isolation)
Description copied from interface: FirebirdConnectionProperties
Get the transaction parameter buffer corresponding to the current connection request information.

Specified by:
getTransactionParameters in interface FirebirdConnectionProperties
Parameters:
isolation - transaction isolation level for which TPB should be returned.
Returns:
instance of TransactionParameterBuffer.

setTransactionParameters

public void setTransactionParameters(int isolation,
                                     TransactionParameterBuffer tpb)
Description copied from interface: FirebirdConnectionProperties
Set transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.

Specified by:
setTransactionParameters in interface FirebirdConnectionProperties
Parameters:
isolation - transaction isolation level.
tpb - instance of TransactionParameterBuffer containing transaction parameters.

isDefaultResultSetHoldable

public boolean isDefaultResultSetHoldable()
Description copied from interface: FirebirdConnectionProperties
Get the default ResultSet holdability.

Specified by:
isDefaultResultSetHoldable in interface FirebirdConnectionProperties
Returns:
true when ResultSets are holdable by default, false not holdable.

setDefaultResultSetHoldable

public void setDefaultResultSetHoldable(boolean isHoldable)
Description copied from interface: FirebirdConnectionProperties
Sets the default ResultSet holdability.

Specified by:
setDefaultResultSetHoldable in interface FirebirdConnectionProperties
Parameters:
isHoldable - true when ResultSets are holdable by default, false not holdable.

getSoTimeout

public int getSoTimeout()
Description copied from interface: FirebirdConnectionProperties
Get the current Socket blocking timeout (SoTimeout).

Specified by:
getSoTimeout in interface FirebirdConnectionProperties
Returns:
The socket blocking timeout in milliseconds (0 is 'infinite')

setSoTimeout

public void setSoTimeout(int soTimeout)
Description copied from interface: FirebirdConnectionProperties
Set the Socket blocking timeout (SoTimeout).

Specified by:
setSoTimeout in interface FirebirdConnectionProperties
Parameters:
soTimeout - Timeout in milliseconds (0 is 'infinite')

isUseFirebirdAutocommit

public boolean isUseFirebirdAutocommit()
Description copied from interface: FirebirdConnectionProperties
Get whether to use Firebird autocommit (experimental).

Specified by:
isUseFirebirdAutocommit in interface FirebirdConnectionProperties
Returns:
use Firebird autocommit

setUseFirebirdAutocommit

public void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
Description copied from interface: FirebirdConnectionProperties
Set whether to use Firebird autocommit (experimental).

Specified by:
setUseFirebirdAutocommit in interface FirebirdConnectionProperties
Parameters:
useFirebirdAutocommit - true Use Firebird autocommit

setNonStandardProperty

public final void setNonStandardProperty(java.lang.String propertyMapping)
Method that allows setting non-standard property in the form "key=value" form. This method is needed by some containers to specify properties in the configuration.

Specified by:
setNonStandardProperty in interface FirebirdConnectionProperties
Parameters:
propertyMapping - mapping between property name (key) and its value. Name and value are separated with "=", ":" or whitespace character. Whitespace characters on the beginning of the string and between key and value are ignored. No escaping is possible: "\n" is backslash-en, not a new line mark.
See Also:
setNonStandardProperty(String, String)

setNonStandardProperty

public final void setNonStandardProperty(java.lang.String key,
                                         java.lang.String value)
Method to set properties which are not exposed through JavaBeans-style setters.

Specified by:
setNonStandardProperty in interface FirebirdConnectionProperties
Parameters:
key - Name of the property (see Jaybird releasenotes)
value - Value of the property
See Also:
setNonStandardProperty(String)

getNonStandardProperty

public final java.lang.String getNonStandardProperty(java.lang.String key)
Method to get the value of properties which are not exposed through JavaBeans-style setters.

Specified by:
getNonStandardProperty in interface FirebirdConnectionProperties
Parameters:
key - Name of the property (see Jaybird releasenotes)
Returns:
Value of the property
See Also:
setNonStandardProperty(String), setNonStandardProperty(String, String)

setDatabase

protected final void setDatabase()
Sets the database property of connectionProperties.


setConnectionProperties

protected final void setConnectionProperties(FBConnectionProperties connectionProperties)

getConnectionProperties

protected final FBConnectionProperties getConnectionProperties()

updateReference

protected static void updateReference(javax.naming.Reference ref,
                                      FBAbstractCommonDataSource instance)
Updates the supplied reference with RefAddr properties relevant to this class.

Parameters:
ref - Reference to update
instance - Instance of this class to obtain values


Copyright © 2001-2019 Jaybird (Firebird JDBC/JCA) team. All rights reserved.