Class FBManagedConnectionFactory
- java.lang.Object
-
- org.firebirdsql.jca.FBManagedConnectionFactory
-
- All Implemented Interfaces:
java.io.Serializable,javax.resource.spi.ManagedConnectionFactory,FirebirdConnectionProperties
public class FBManagedConnectionFactory extends java.lang.Object implements javax.resource.spi.ManagedConnectionFactory, FirebirdConnectionProperties, java.io.Serializable
FBManagedConnectionFactory implements the jca ManagedConnectionFactory interface and also many of the internal functions of ManagedConnection. This nonstandard behavior is required due to firebird requiring all work done in a transaction to be done over one connection. To support xa semantics, the correct db handle must be located whenever a ManagedConnection is associated with an xid. WARNING: this adapter will probably not work properly in an environment where ManagedConnectionFactory is serialized and deserialized, and the deserialized copy is expected to function as anything other than a key.- Author:
- David Jencks , Mark Rotteveel
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description FBManagedConnectionFactory()Create a new pure-Java FBManagedConnectionFactory.FBManagedConnectionFactory(GDSType gdsType)Create a new FBManagedConnectionFactory based around the given GDSType.FBManagedConnectionFactory(GDSType gdsType, FBConnectionProperties connectionProperties)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description FBManagedConnectionFactorycanonicalize()Thecanonicalizemethod is used in FBDriver to reuse previous fbmcf instances if they have been create.java.lang.ObjectcreateConnectionFactory()ThecreateConnectionFactorymethod creates a DataSource with a default stand alone ConnectionManager.java.lang.ObjectcreateConnectionFactory(javax.resource.spi.ConnectionManager cxManager)ThecreateConnectionFactorymethod creates a DataSource using the supplied ConnectionManager.javax.resource.spi.ManagedConnectioncreateManagedConnection(javax.security.auth.Subject subject, javax.resource.spi.ConnectionRequestInfo cri)Creates a new physical connection to the underlying EIS resource manager, ManagedConnectionFactory uses the security information (passed as Subject) and additional ConnectionRequestInfo (which is specific to ResourceAdapter and opaque to application server) to create this new connection.booleanequals(java.lang.Object other)voidforget(FBManagedConnection mc, javax.transaction.xa.Xid xid)java.lang.StringgetAuthPlugins()Get the list of authentication plugins to try.intgetBlobBufferLength()Deprecated.intgetBlobBufferSize()intgetBuffersNumber()FBConnectionPropertiesgetCacheKey()java.lang.StringgetCharSet()intgetConnectTimeout()Get the current connect timeout.java.lang.StringgetDatabase()FbDatabaseFactorygetDatabaseFactory()DatabaseParameterBuffergetDatabaseParameterBuffer()Get the database parameter buffer corresponding to the current connection request information.java.lang.StringgetDataTypeBind()Get thedataTypeBindconfiguration.java.lang.StringgetDbCryptConfig()Get the database encryption plugin configuration.FBConnectionRequestInfogetDefaultConnectionRequestInfo()java.lang.StringgetDefaultIsolation()Get the default transaction isolation level as string.FBTpbgetDefaultTpb()intgetDefaultTransactionIsolation()Get the default transaction isolation level.java.lang.StringgetEncoding()GDSTypegetGDSType()Get the GDS implementation type around which this factory is based.java.lang.StringgetGeneratedKeysEnabled()Get thegeneratedKeysEnabledconfiguration.java.lang.StringgetLocalEncoding()Deprecated.usegetCharSet()instead.java.io.PrintWritergetLogWriter()Get the log writer for thisManagedConnectionFactoryinstance.java.lang.StringgetNonStandardProperty(java.lang.String key)Get the property that does not have corresponding getter method by its name.java.lang.StringgetPassword()java.lang.StringgetRoleName()java.lang.StringgetSessionTimeZone()Get thesessionTimeZone.intgetSocketBufferSize()intgetSoTimeout()Get the current Socket blocking timeout (SoTimeout).java.lang.StringgetSqlDialect()FBTpbgetTpb(int defaultTransactionIsolation)java.lang.StringgetTpbMapping()Get the used TPB mapping.java.lang.IntegergetTransactionIsolation()Deprecated.java.lang.StringgetTransactionIsolationName()Deprecated.TransactionParameterBuffergetTransactionParameters(int isolation)Get the transaction parameter buffer corresponding to the current connection request information.java.lang.StringgetType()java.lang.StringgetUserName()java.lang.StringgetWireCrypt()Get the wire encryption level value.inthashCode()booleanisDefaultResultSetHoldable()Get the default ResultSet holdability.booleanisIgnoreProcedureType()Get the value forignoreProcedureType.booleanisTimestampUsesLocalTimezone()booleanisUseFirebirdAutocommit()Get whether to use Firebird autocommit (experimental).booleanisUseStandardUdf()booleanisUseStreamBlobs()booleanisWireCompression()Get if wire compression should be enabled.javax.resource.spi.ManagedConnectionmatchManagedConnections(java.util.Set connectionSet, javax.security.auth.Subject subject, javax.resource.spi.ConnectionRequestInfo cxRequestInfo)Returns a matched connection from the candidate set of connections.voidrecover(FBManagedConnection mc, javax.transaction.xa.Xid xid)voidsetAuthPlugins(java.lang.String authPlugins)Sets the authentication plugins to try.voidsetBlobBufferLength(int value)Deprecated.voidsetBlobBufferSize(int bufferSize)voidsetBuffersNumber(int buffersNumber)voidsetCharSet(java.lang.String charSet)voidsetConnectTimeout(int connectTimeout)Set the connect timeout.voidsetDatabase(java.lang.String database)voidsetDataTypeBind(java.lang.String dataTypeBind)Sets thedataTypeBindconfiguration.voidsetDbCryptConfig(java.lang.String dbCryptConfig)Sets the database encryption plugin configuration.voidsetDefaultConnectionManager(javax.resource.spi.ConnectionManager defaultCm)voidsetDefaultIsolation(java.lang.String isolation)Set the default transaction isolation level as string.voidsetDefaultResultSetHoldable(boolean isHoldable)Sets the default ResultSet holdability.voidsetDefaultTransactionIsolation(int defaultIsolationLevel)Set the default transaction isolation level.voidsetEncoding(java.lang.String encoding)voidsetGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)Sets thegeneratedKeysEnabledconfiguration.voidsetIgnoreProcedureType(boolean ignoreProcedureType)Sets the valueignoreProcedureType.voidsetLocalEncoding(java.lang.String localEncoding)Deprecated.usesetCharSet(String)instead.voidsetLogWriter(java.io.PrintWriter out)Set the log writer for thisManagedConnectionFactoryinstance.voidsetNonStandardProperty(java.lang.String propertyMapping)Set the property that does not have corresponding setter method.voidsetNonStandardProperty(java.lang.String key, java.lang.String value)Set the property that does not have corresponding setter method.voidsetPassword(java.lang.String password)voidsetRoleName(java.lang.String roleName)voidsetSessionTimeZone(java.lang.String sessionTimeZone)Sets thesessionTimeZone.voidsetSocketBufferSize(int socketBufferSize)voidsetSoTimeout(int soTimeout)Set the Socket blocking timeout (SoTimeout).voidsetSqlDialect(java.lang.String sqlDialect)voidsetTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)voidsetTpbMapping(java.lang.String tpbMapping)Set path to the properties file with the TPB mapping.voidsetTransactionIsolation(java.lang.Integer value)Deprecated.voidsetTransactionIsolationName(java.lang.String name)Deprecated.voidsetTransactionParameters(int isolation, TransactionParameterBuffer tpb)Set transaction parameters for the specified transaction isolation level.voidsetType(java.lang.String type)voidsetUseFirebirdAutocommit(boolean useFirebirdAutocommit)Set whether to use Firebird autocommit (experimental).voidsetUserName(java.lang.String userName)voidsetUseStandardUdf(boolean useStandardUdf)voidsetUseStreamBlobs(boolean useStreamBlobs)voidsetWireCompression(boolean wireCompression)Sets if the connection should try to enable wire compression.voidsetWireCrypt(java.lang.String wireCrypt)Sets the wire encryption level.
-
-
-
Constructor Detail
-
FBManagedConnectionFactory
public FBManagedConnectionFactory()
Create a new pure-Java FBManagedConnectionFactory.
-
FBManagedConnectionFactory
public FBManagedConnectionFactory(GDSType gdsType)
Create a new FBManagedConnectionFactory based around the given GDSType.- Parameters:
gdsType- The GDS implementation to use
-
FBManagedConnectionFactory
public FBManagedConnectionFactory(GDSType gdsType, FBConnectionProperties connectionProperties)
-
-
Method Detail
-
getDatabaseFactory
public FbDatabaseFactory getDatabaseFactory()
-
getGDSType
public GDSType getGDSType()
Get the GDS implementation type around which this factory is based.- Returns:
- The GDS implementation type
-
getBlobBufferLength
@Deprecated public int getBlobBufferLength()
Deprecated.
-
setBlobBufferLength
@Deprecated public void setBlobBufferLength(int value)
Deprecated.
-
getTransactionIsolation
@Deprecated public java.lang.Integer getTransactionIsolation()
Deprecated.
-
setTransactionIsolation
@Deprecated public void setTransactionIsolation(java.lang.Integer value)
Deprecated.
-
getTransactionIsolationName
@Deprecated public java.lang.String getTransactionIsolationName()
Deprecated.
-
setTransactionIsolationName
@Deprecated public void setTransactionIsolationName(java.lang.String name)
Deprecated.
-
getLocalEncoding
@Deprecated public java.lang.String getLocalEncoding()
Deprecated.usegetCharSet()instead.
-
setLocalEncoding
@Deprecated public void setLocalEncoding(java.lang.String localEncoding)
Deprecated.usesetCharSet(String)instead.
-
getBlobBufferSize
public int getBlobBufferSize()
- Specified by:
getBlobBufferSizein interfaceFirebirdConnectionProperties- Returns:
- BLOB buffer size in bytes.
-
getBuffersNumber
public int getBuffersNumber()
- Specified by:
getBuffersNumberin interfaceFirebirdConnectionProperties- 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.
-
getCharSet
public java.lang.String getCharSet()
- Specified by:
getCharSetin interfaceFirebirdConnectionProperties- Returns:
- Character set for the connection.
- See Also:
FirebirdConnectionProperties.setCharSet(String)
-
getDatabase
public java.lang.String getDatabase()
- Specified by:
getDatabasein interfaceFirebirdConnectionProperties- Returns:
- path to the database including the server name and the port, if needed.
-
getDatabaseParameterBuffer
public DatabaseParameterBuffer getDatabaseParameterBuffer() throws java.sql.SQLException
Description copied from interface:FirebirdConnectionPropertiesGet the database parameter buffer corresponding to the current connection request information.- Specified by:
getDatabaseParameterBufferin interfaceFirebirdConnectionProperties- Returns:
- instance of
DatabaseParameterBuffer. - Throws:
java.sql.SQLException- if database parameter buffer cannot be created.
-
getDefaultIsolation
public java.lang.String getDefaultIsolation()
Description copied from interface:FirebirdConnectionPropertiesGet the default transaction isolation level as string. This method is complementary to theFirebirdConnectionProperties.getDefaultTransactionIsolation(), however it takes a string as parameter instead of a numeric constant.- Specified by:
getDefaultIsolationin interfaceFirebirdConnectionProperties- Returns:
- default transaction isolation as string.
- See Also:
FirebirdConnectionProperties.setDefaultIsolation(String)
-
getDefaultTransactionIsolation
public int getDefaultTransactionIsolation()
Description copied from interface:FirebirdConnectionPropertiesGet the default transaction isolation level. This is the transaction isolation level for the newly created connections.- Specified by:
getDefaultTransactionIsolationin interfaceFirebirdConnectionProperties- Returns:
- default transaction isolation level.
-
getEncoding
public java.lang.String getEncoding()
- Specified by:
getEncodingin interfaceFirebirdConnectionProperties- Returns:
- Character encoding for the connection.
- See Also:
FirebirdConnectionProperties.setEncoding(String)
-
getNonStandardProperty
public java.lang.String getNonStandardProperty(java.lang.String key)
Description copied from interface:FirebirdConnectionPropertiesGet the property that does not have corresponding getter method by its name.- Specified by:
getNonStandardPropertyin interfaceFirebirdConnectionProperties- Parameters:
key- name of the property to get.- Returns:
- value of the property.
-
getPassword
public java.lang.String getPassword()
- Specified by:
getPasswordin interfaceFirebirdConnectionProperties- Returns:
- password corresponding to the specified user name.
-
getRoleName
public java.lang.String getRoleName()
- Specified by:
getRoleNamein interfaceFirebirdConnectionProperties- Returns:
- SQL role to use.
-
getSocketBufferSize
public int getSocketBufferSize()
- Specified by:
getSocketBufferSizein interfaceFirebirdConnectionProperties- Returns:
- socket buffer size in bytes, or -1 is not specified.
-
getSqlDialect
public java.lang.String getSqlDialect()
- Specified by:
getSqlDialectin interfaceFirebirdConnectionProperties- Returns:
- SQL dialect of the client.
-
getTpbMapping
public java.lang.String getTpbMapping()
Description copied from interface:FirebirdConnectionPropertiesGet the used TPB mapping.- Specified by:
getTpbMappingin interfaceFirebirdConnectionProperties- Returns:
- path to the TPB mapping.
- See Also:
FirebirdConnectionProperties.setTpbMapping(String)
-
getTransactionParameters
public TransactionParameterBuffer getTransactionParameters(int isolation)
Description copied from interface:FirebirdConnectionPropertiesGet the transaction parameter buffer corresponding to the current connection request information.- Specified by:
getTransactionParametersin interfaceFirebirdConnectionProperties- Parameters:
isolation- transaction isolation level for which TPB should be returned.- Returns:
- instance of
TransactionParameterBuffer.
-
getType
public java.lang.String getType()
- Specified by:
getTypein interfaceFirebirdConnectionProperties- Returns:
- type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.
-
getUserName
public java.lang.String getUserName()
- Specified by:
getUserNamein interfaceFirebirdConnectionProperties- Returns:
- name of the user that will be used when connecting to the database.
-
isTimestampUsesLocalTimezone
public boolean isTimestampUsesLocalTimezone()
- Specified by:
isTimestampUsesLocalTimezonein interfaceFirebirdConnectionProperties- Returns:
trueif the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.
-
isUseStandardUdf
public boolean isUseStandardUdf()
- Specified by:
isUseStandardUdfin interfaceFirebirdConnectionProperties- Returns:
trueif driver should assume that standard UDF are installed.
-
isUseStreamBlobs
public boolean isUseStreamBlobs()
- Specified by:
isUseStreamBlobsin interfaceFirebirdConnectionProperties- Returns:
trueif stream blobs should be created, otherwisefalse.
-
setBlobBufferSize
public void setBlobBufferSize(int bufferSize)
- Specified by:
setBlobBufferSizein interfaceFirebirdConnectionProperties- Parameters:
bufferSize- size of the BLOB buffer in bytes.
-
setBuffersNumber
public void setBuffersNumber(int buffersNumber)
- Specified by:
setBuffersNumberin interfaceFirebirdConnectionProperties- 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.
-
setCharSet
public void setCharSet(java.lang.String charSet)
- Specified by:
setCharSetin interfaceFirebirdConnectionProperties- Parameters:
charSet- Character set for the connection. Similar toencodingproperty, but accepts Java names instead of Firebird ones.
-
setDatabase
public void setDatabase(java.lang.String database)
- Specified by:
setDatabasein interfaceFirebirdConnectionProperties- Parameters:
database- path to the database including the server name and the port, if needed.
-
setDefaultIsolation
public void setDefaultIsolation(java.lang.String isolation)
Description copied from interface:FirebirdConnectionPropertiesSet the default transaction isolation level as string. This method is complementary to theFirebirdConnectionProperties.setDefaultTransactionIsolation(int), however it takes a string as parameter instead of a numeric constant. Following strings are allowed:"TRANSACTION_READ_COMMITTED"for a READ COMMITTED isolation level."TRANSACTION_REPEATABLE_READ"for a REPEATABLE READ isolation level."TRANSACTION_SERIALIZABLE"for a SERIALIZABLE isolation level.
- Specified by:
setDefaultIsolationin interfaceFirebirdConnectionProperties- Parameters:
isolation- string constant representing a default isolation level.
-
setDefaultTransactionIsolation
public void setDefaultTransactionIsolation(int defaultIsolationLevel)
Description copied from interface:FirebirdConnectionPropertiesSet the default transaction isolation level.- Specified by:
setDefaultTransactionIsolationin interfaceFirebirdConnectionProperties- Parameters:
defaultIsolationLevel- default transaction isolation level.
-
setEncoding
public void setEncoding(java.lang.String encoding)
- Specified by:
setEncodingin interfaceFirebirdConnectionProperties- Parameters:
encoding- Character encoding for the connection. See Firebird documentation for more information.
-
setNonStandardProperty
public void setNonStandardProperty(java.lang.String key, java.lang.String value)Description copied from interface:FirebirdConnectionPropertiesSet the property that does not have corresponding setter method.- Specified by:
setNonStandardPropertyin interfaceFirebirdConnectionProperties- Parameters:
key- name of the property to set.value- value of the property.
-
setNonStandardProperty
public void setNonStandardProperty(java.lang.String propertyMapping)
Description copied from interface:FirebirdConnectionPropertiesSet the property that does not have corresponding setter method.- Specified by:
setNonStandardPropertyin interfaceFirebirdConnectionProperties- Parameters:
propertyMapping- parameter value in the ?propertyName[=propertyValue]? form, this allows setting non-standard parameters using configuration files.
-
setPassword
public void setPassword(java.lang.String password)
- Specified by:
setPasswordin interfaceFirebirdConnectionProperties- Parameters:
password- password corresponding to the specified user name.
-
setRoleName
public void setRoleName(java.lang.String roleName)
- Specified by:
setRoleNamein interfaceFirebirdConnectionProperties- Parameters:
roleName- SQL role to use.
-
setSocketBufferSize
public void setSocketBufferSize(int socketBufferSize)
- Specified by:
setSocketBufferSizein interfaceFirebirdConnectionProperties- Parameters:
socketBufferSize- socket buffer size in bytes.
-
setSqlDialect
public void setSqlDialect(java.lang.String sqlDialect)
- Specified by:
setSqlDialectin interfaceFirebirdConnectionProperties- Parameters:
sqlDialect- SQL dialect of the client.
-
setTimestampUsesLocalTimezone
public void setTimestampUsesLocalTimezone(boolean timestampUsesLocalTimezone)
- Specified by:
setTimestampUsesLocalTimezonein interfaceFirebirdConnectionProperties- Parameters:
timestampUsesLocalTimezone-trueif the Jaybird 1.0 handling of the calendar in corresponding setters. This is also compatible with MySQL calendar treatment.
-
setTpbMapping
public void setTpbMapping(java.lang.String tpbMapping)
Description copied from interface:FirebirdConnectionPropertiesSet 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 theConnectioninterface and a comma-separated list of TPB parameters.- Specified by:
setTpbMappingin interfaceFirebirdConnectionProperties- Parameters:
tpbMapping- path to the properties file.
-
setTransactionParameters
public void setTransactionParameters(int isolation, TransactionParameterBuffer tpb)Description copied from interface:FirebirdConnectionPropertiesSet transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.- Specified by:
setTransactionParametersin interfaceFirebirdConnectionProperties- Parameters:
isolation- transaction isolation level.tpb- instance ofTransactionParameterBuffercontaining transaction parameters.
-
setType
public void setType(java.lang.String type)
- Specified by:
setTypein interfaceFirebirdConnectionProperties- Parameters:
type- type of the connection, for example, "PURE_JAVA", "LOCAL", "EMBEDDED", depends on the GDS implementations installed in the system.
-
setUserName
public void setUserName(java.lang.String userName)
- Specified by:
setUserNamein interfaceFirebirdConnectionProperties- Parameters:
userName- name of the user that will be used when connecting to the database.
-
setUseStandardUdf
public void setUseStandardUdf(boolean useStandardUdf)
- Specified by:
setUseStandardUdfin interfaceFirebirdConnectionProperties- Parameters:
useStandardUdf-trueif driver should assume that standard UDF are installed.
-
setUseStreamBlobs
public void setUseStreamBlobs(boolean useStreamBlobs)
- Specified by:
setUseStreamBlobsin interfaceFirebirdConnectionProperties- Parameters:
useStreamBlobs-trueif stream blobs should be created, otherwisefalse.
-
isDefaultResultSetHoldable
public boolean isDefaultResultSetHoldable()
Description copied from interface:FirebirdConnectionPropertiesGet the default ResultSet holdability.- Specified by:
isDefaultResultSetHoldablein interfaceFirebirdConnectionProperties- Returns:
truewhen ResultSets are holdable by default,falsenot holdable.
-
setDefaultResultSetHoldable
public void setDefaultResultSetHoldable(boolean isHoldable)
Description copied from interface:FirebirdConnectionPropertiesSets the default ResultSet holdability.- Specified by:
setDefaultResultSetHoldablein interfaceFirebirdConnectionProperties- Parameters:
isHoldable-truewhen ResultSets are holdable by default,falsenot holdable.
-
setDefaultConnectionManager
public void setDefaultConnectionManager(javax.resource.spi.ConnectionManager defaultCm)
-
getSoTimeout
public int getSoTimeout()
Description copied from interface:FirebirdConnectionPropertiesGet the current Socket blocking timeout (SoTimeout).- Specified by:
getSoTimeoutin interfaceFirebirdConnectionProperties- Returns:
- The socket blocking timeout in milliseconds (0 is 'infinite')
-
setSoTimeout
public void setSoTimeout(int soTimeout)
Description copied from interface:FirebirdConnectionPropertiesSet the Socket blocking timeout (SoTimeout).- Specified by:
setSoTimeoutin interfaceFirebirdConnectionProperties- Parameters:
soTimeout- Timeout in milliseconds (0 is 'infinite')
-
getConnectTimeout
public int getConnectTimeout()
Description copied from interface:FirebirdConnectionPropertiesGet the current connect timeout.- Specified by:
getConnectTimeoutin interfaceFirebirdConnectionProperties- Returns:
- Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)
-
setConnectTimeout
public void setConnectTimeout(int connectTimeout)
Description copied from interface:FirebirdConnectionPropertiesSet the connect timeout.- Specified by:
setConnectTimeoutin interfaceFirebirdConnectionProperties- Parameters:
connectTimeout- Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)
-
isUseFirebirdAutocommit
public boolean isUseFirebirdAutocommit()
Description copied from interface:FirebirdConnectionPropertiesGet whether to use Firebird autocommit (experimental).- Specified by:
isUseFirebirdAutocommitin interfaceFirebirdConnectionProperties- Returns:
trueuse Firebird autocommit
-
setUseFirebirdAutocommit
public void setUseFirebirdAutocommit(boolean useFirebirdAutocommit)
Description copied from interface:FirebirdConnectionPropertiesSet whether to use Firebird autocommit (experimental).- Specified by:
setUseFirebirdAutocommitin interfaceFirebirdConnectionProperties- Parameters:
useFirebirdAutocommit-trueUse Firebird autocommit
-
getWireCrypt
public java.lang.String getWireCrypt()
Description copied from interface:FirebirdConnectionPropertiesGet the wire encryption level value.- Specified by:
getWireCryptin interfaceFirebirdConnectionProperties- Returns:
- Wire encryption level (
nullimpliesDEFAULT)
-
setWireCrypt
public void setWireCrypt(java.lang.String wireCrypt)
Description copied from interface:FirebirdConnectionPropertiesSets the wire encryption level.Values are defined by
WireCrypt, values are handled case insensitive. Invalid values are accepted, but will cause an error when a connection is established.- Specified by:
setWireCryptin interfaceFirebirdConnectionProperties- Parameters:
wireCrypt- Wire encryption level
-
getDbCryptConfig
public java.lang.String getDbCryptConfig()
Description copied from interface:FirebirdConnectionPropertiesGet the database encryption plugin configuration.- Specified by:
getDbCryptConfigin interfaceFirebirdConnectionProperties- Returns:
- Database encryption plugin configuration, meaning plugin specific
-
setDbCryptConfig
public void setDbCryptConfig(java.lang.String dbCryptConfig)
Description copied from interface:FirebirdConnectionPropertiesSets the database encryption plugin configuration.- Specified by:
setDbCryptConfigin interfaceFirebirdConnectionProperties- Parameters:
dbCryptConfig- Database encryption plugin configuration, meaning plugin specific
-
getAuthPlugins
public java.lang.String getAuthPlugins()
Description copied from interface:FirebirdConnectionPropertiesGet the list of authentication plugins to try.- Specified by:
getAuthPluginsin interfaceFirebirdConnectionProperties- Returns:
- comma-separated list of authentication plugins, or
nullfor driver default
-
setAuthPlugins
public void setAuthPlugins(java.lang.String authPlugins)
Description copied from interface:FirebirdConnectionPropertiesSets the authentication plugins to try.Invalid names are skipped during authentication.
- Specified by:
setAuthPluginsin interfaceFirebirdConnectionProperties- Parameters:
authPlugins- comma-separated list of authentication plugins, ornullfor driver default
-
getGeneratedKeysEnabled
public java.lang.String getGeneratedKeysEnabled()
Description copied from interface:FirebirdConnectionPropertiesGet thegeneratedKeysEnabledconfiguration.- Specified by:
getGeneratedKeysEnabledin interfaceFirebirdConnectionProperties- Returns:
- configuration value for
generatedKeysEnabled, ornullfor driver default
-
setGeneratedKeysEnabled
public void setGeneratedKeysEnabled(java.lang.String generatedKeysEnabled)
Description copied from interface:FirebirdConnectionPropertiesSets thegeneratedKeysEnabledconfiguration.- Specified by:
setGeneratedKeysEnabledin interfaceFirebirdConnectionProperties- Parameters:
generatedKeysEnabled- Generated keys support configuration:default(or null/empty),disabled,ignored, or a list of statement types to enable (possible values:insert,update,delete,update_or_insert,merge)
-
getDataTypeBind
public java.lang.String getDataTypeBind()
Description copied from interface:FirebirdConnectionPropertiesGet thedataTypeBindconfiguration.- Specified by:
getDataTypeBindin interfaceFirebirdConnectionProperties- Returns:
- configuration value for
dataTypeBind, ornullfor driver default
-
setDataTypeBind
public void setDataTypeBind(java.lang.String dataTypeBind)
Description copied from interface:FirebirdConnectionPropertiesSets thedataTypeBindconfiguration.If the value is explicitly set to a non-null value and the connected server is Firebird 4 or higher, this will configure the data type binding with the specified values using
isc_dpb_set_bind, which is equivalent to executingSET BINDstatements with the values.See also Firebird documentation for
SET BIND.- Specified by:
setDataTypeBindin interfaceFirebirdConnectionProperties- Parameters:
dataTypeBind- Firebird 4+ data type bind configuration, a semicolon-separated list of<from-type> TO <to-type>
-
getSessionTimeZone
public java.lang.String getSessionTimeZone()
Description copied from interface:FirebirdConnectionPropertiesGet thesessionTimeZone.- Specified by:
getSessionTimeZonein interfaceFirebirdConnectionProperties- Returns:
- value for
sessionTimeZone, ornullfor driver default (JVM default time zone)
-
setSessionTimeZone
public void setSessionTimeZone(java.lang.String sessionTimeZone)
Description copied from interface:FirebirdConnectionPropertiesSets thesessionTimeZone.- Specified by:
setSessionTimeZonein interfaceFirebirdConnectionProperties- Parameters:
sessionTimeZone- Firebird 4+ session time zone name (we strongly suggest to use Java compatible names only), use"server"to use server default time zone (note: conversion will use JVM default time zone)
-
isIgnoreProcedureType
public boolean isIgnoreProcedureType()
Description copied from interface:FirebirdConnectionPropertiesGet the value forignoreProcedureType.- Specified by:
isIgnoreProcedureTypein interfaceFirebirdConnectionProperties- Returns:
- value for
ignoreProcedureType
-
setIgnoreProcedureType
public void setIgnoreProcedureType(boolean ignoreProcedureType)
Description copied from interface:FirebirdConnectionPropertiesSets the valueignoreProcedureType.When set to true, the
CallableStatementimplementation in Jaybird will ignore metadata information about the stored procedure type and default to usingEXECUTE PROCEDURE, unless the type is explicitly set usingFirebirdCallableStatement.setSelectableProcedure(boolean). This can be useful in situations where a stored procedure is selectable, but tooling or code expects an executable stored procedure.- Specified by:
setIgnoreProcedureTypein interfaceFirebirdConnectionProperties- Parameters:
ignoreProcedureType-trueIgnore procedure type
-
isWireCompression
public boolean isWireCompression()
Description copied from interface:FirebirdConnectionPropertiesGet if wire compression should be enabled.Wire compression requires Firebird 3 or higher, and the server must have the zlib library. If compression cannot be negotiated, the connection will be made without wire compression.
This property will be ignored for native connections. For native connections, the configuration in
firebird.confread by the client library will be used.- Specified by:
isWireCompressionin interfaceFirebirdConnectionProperties- Returns:
truewire compression enabled
-
setWireCompression
public void setWireCompression(boolean wireCompression)
Description copied from interface:FirebirdConnectionPropertiesSets if the connection should try to enable wire compression.- Specified by:
setWireCompressionin interfaceFirebirdConnectionProperties- Parameters:
wireCompression-trueenable wire compression,falsedisable wire compression (the default)- See Also:
FirebirdConnectionProperties.isWireCompression()
-
hashCode
public int hashCode()
- Specified by:
hashCodein interfacejavax.resource.spi.ManagedConnectionFactory- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Specified by:
equalsin interfacejavax.resource.spi.ManagedConnectionFactory- Overrides:
equalsin classjava.lang.Object
-
getDefaultConnectionRequestInfo
public FBConnectionRequestInfo getDefaultConnectionRequestInfo() throws javax.resource.ResourceException
- Throws:
javax.resource.ResourceException
-
getDefaultTpb
public FBTpb getDefaultTpb() throws javax.resource.ResourceException
- Throws:
javax.resource.ResourceException
-
getTpb
public FBTpb getTpb(int defaultTransactionIsolation) throws FBResourceException
- Throws:
FBResourceException
-
createConnectionFactory
public java.lang.Object createConnectionFactory(javax.resource.spi.ConnectionManager cxManager) throws javax.resource.ResourceExceptionThecreateConnectionFactorymethod creates a DataSource using the supplied ConnectionManager.- Specified by:
createConnectionFactoryin interfacejavax.resource.spi.ManagedConnectionFactory- Parameters:
cxManager- aConnectionManagervalue- Returns:
- a
java.lang.Objectvalue - Throws:
javax.resource.ResourceException- if an error occurs
-
createConnectionFactory
public java.lang.Object createConnectionFactory() throws javax.resource.ResourceExceptionThecreateConnectionFactorymethod creates a DataSource with a default stand alone ConnectionManager. Ours can implement pooling.- Specified by:
createConnectionFactoryin interfacejavax.resource.spi.ManagedConnectionFactory- Returns:
- a new
javax.sql.DataSourcebased around this connection factory - Throws:
javax.resource.ResourceException- if an error occurs
-
createManagedConnection
public javax.resource.spi.ManagedConnection createManagedConnection(javax.security.auth.Subject subject, javax.resource.spi.ConnectionRequestInfo cri) throws javax.resource.ResourceExceptionCreates a new physical connection to the underlying EIS resource manager, ManagedConnectionFactory uses the security information (passed as Subject) and additional ConnectionRequestInfo (which is specific to ResourceAdapter and opaque to application server) to create this new connection.- Specified by:
createManagedConnectionin interfacejavax.resource.spi.ManagedConnectionFactory- Parameters:
subject- Caller's security informationcri- Additional resource adapter specific connection request information- Returns:
- ManagedConnection instance
- Throws:
javax.resource.ResourceException- generic exceptionjavax.resource.spi.SecurityException- security related errorjavax.resource.spi.ResourceAllocationException- failed to allocate system resources for connection requestjavax.resource.spi.ResourceAdapterInternalException- resource adapter related error conditionjavax.resource.spi.EISSystemException- internal error condition in EIS instance
-
matchManagedConnections
public javax.resource.spi.ManagedConnection matchManagedConnections(java.util.Set connectionSet, javax.security.auth.Subject subject, javax.resource.spi.ConnectionRequestInfo cxRequestInfo) throws javax.resource.ResourceExceptionReturns a matched connection from the candidate set of connections. ManagedConnectionFactory uses the security info (as inSubject) and information provided throughConnectionRequestInfoand additional Resource Adapter specific criteria to do matching. Note that criteria used for matching is specific to a resource adapter and is not prescribed by theConnectorspecification.This method returns a
ManagedConnectioninstance that is the best match for handling the connection allocation request.- Specified by:
matchManagedConnectionsin interfacejavax.resource.spi.ManagedConnectionFactory- Parameters:
connectionSet- candidate connection setsubject- caller's security informationcxRequestInfo- additional resource adapter specific connection request information- Returns:
- ManagedConnection if resource adapter finds an acceptable match otherwise null
- Throws:
javax.resource.ResourceException- - generic exceptionjavax.resource.spi.SecurityException- - security related errorjavax.resource.spi.ResourceAdapterInternalException- - resource adapter related error conditionjavax.resource.NotSupportedException- - if operation is not supported
-
setLogWriter
public void setLogWriter(java.io.PrintWriter out) throws javax.resource.ResourceExceptionSet the log writer for thisManagedConnectionFactoryinstance. The log writer is a character output stream to which all logging and tracing messages for thisManagedConnectionFactoryinstance will be printed. ApplicationServer manages the association of output stream with theManagedConnectionFactory. When aManagedConnectionFactoryobject is created the log writer is initiallynull, in other words, logging is disabled. Once a log writer is associated with aManagedConnectionFactory, logging and tracing forManagedConnectionFactoryinstance is enabled.The
ManagedConnectioninstances created byManagedConnectionFactory"inherits" the log writer, which can be overridden by ApplicationServer usingManagedConnection.setLogWriter(java.io.PrintWriter)to setManagedConnectionspecific logging and tracing.- Specified by:
setLogWriterin interfacejavax.resource.spi.ManagedConnectionFactory- Parameters:
out- an out stream for error logging and tracing- Throws:
javax.resource.ResourceException- generic exceptionjavax.resource.spi.ResourceAdapterInternalException- resource adapter related error condition
-
getLogWriter
public java.io.PrintWriter getLogWriter()
Get the log writer for thisManagedConnectionFactoryinstance. The log writer is a character output stream to which all logging and tracing messages for thisManagedConnectionFactoryinstance will be printed. ApplicationServer manages the association of output stream with theManagedConnectionFactory. When aManagedConnectionFactoryobject is created the log writer is initially null, in other words, logging is disabled.- Specified by:
getLogWriterin interfacejavax.resource.spi.ManagedConnectionFactory- Returns:
- PrintWriter instance
- Throws:
javax.resource.ResourceException- generic exception
-
canonicalize
public FBManagedConnectionFactory canonicalize()
Thecanonicalizemethod is used in FBDriver to reuse previous fbmcf instances if they have been create. It should really be package access level- Returns:
- a
FBManagedConnectionFactoryvalue
-
forget
public void forget(FBManagedConnection mc, javax.transaction.xa.Xid xid) throws GDSException
- Throws:
GDSException
-
recover
public void recover(FBManagedConnection mc, javax.transaction.xa.Xid xid) throws GDSException
- Throws:
GDSException
-
getCacheKey
public final FBConnectionProperties getCacheKey()
-
-