Class AbstractConnectionPropertiesDataSource
- All Implemented Interfaces:
CommonDataSource
,AttachmentProperties
,BaseProperties
,DatabaseConnectionProperties
,FirebirdConnectionProperties
- Direct Known Subclasses:
FBAbstractCommonDataSource
,FBSimpleDataSource
FirebirdConnectionProperties
to ensure subclasses can be introspected as beans.- Since:
- 5
- Author:
- Mark Rotteveel
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet the list of authentication plugins to try.int
Java character set configured for the connection.int
Get the connect timeout in seconds.Gets the database of the connection.Get thedataTypeBind
configuration.Get the database encryption plugin configuration.Get the default transaction isolation level as string.int
Get the default transaction isolation level.Comma-separated list of additionally enabled protocols.Firebird character set configured for the connection.Get thegeneratedKeysEnabled
configuration.int
int
Get the page cache size.int
int
Get the port number of the server.int
Get the hostname or IP address of the Firebird server.Get thesessionTimeZone
.int
Get the socket buffer size.The class name of a custom socket factory to be used for pure Java connections.int
Get the initial Socket blocking timeout (SoTimeout).int
Get the used TPB mapping.getType()
getUser()
Deprecated.Get the wire encryption level.boolean
boolean
Gets if async fetching is enabled or disabled (pure Java only).boolean
Gets the current setting ofcolumnLabelForName
boolean
boolean
Get whether ResultSets are holdable by default.boolean
boolean
Get the value forignoreProcedureType
.boolean
boolean
Get whether to use Firebird autocommit (experimental).boolean
boolean
boolean
Get if wire compression should be enabled.void
setAllowTxStmts
(boolean allowTxStmts) Sets whether transaction management statements with (hard) transaction boundaries are allowed to be prepared or executed.void
setAsyncFetch
(boolean asyncFetch) Sets if async fetching is enabled or disabled (pure Java only).void
setAuthPlugins
(String authPlugins) Sets the authentication plugins to try.void
setBlobBufferSize
(int blobBufferSize) void
setCharSet
(String charSet) Set the Java character set for the connection.void
setColumnLabelForName
(boolean columnLabelForName) void
setConnectTimeout
(int connectTimeout) Set the connect timeout in seconds.void
setCreateDatabaseIfNotExist
(boolean createDatabaseIfNotExist) Sets if an attempt should be made to create a database if it does not exist.void
setDatabaseName
(String databaseName) Sets the database of the connectionvoid
setDataTypeBind
(String dataTypeBind) Sets thedataTypeBind
configuration.void
setDbCryptConfig
(String dbCryptConfig) Sets the database encryption plugin configuration.void
setDecfloatRound
(String decfloatRound) Sets theDECFLOAT
rounding modevoid
setDecfloatTraps
(String decfloatTraps) Sets theDECFLOAT
error traps.void
setDefaultIsolation
(String isolation) Set the default transaction isolation level as string.void
setDefaultResultSetHoldable
(boolean defaultResultSetHoldable) Set ifResultSet
should beResultSet.HOLD_CURSORS_OVER_COMMIT
by default.void
setDefaultTransactionIsolation
(int defaultIsolationLevel) Set the default transaction isolation level.void
setEnableProtocol
(String enableProtocol) Comma-separated list of additionally enabled protocols.void
setEncoding
(String encoding) Set the Firebird character set for the connection.void
setExtendedMetadata
(boolean extendedMetadata) Sets if certain metadata classes will perform additional queries to enrich the information for certain types.void
setGeneratedKeysEnabled
(String generatedKeysEnabled) Sets thegeneratedKeysEnabled
configuration.void
setIgnoreProcedureType
(boolean ignoreProcedureType) Sets the valueignoreProcedureType
.void
setLoginTimeout
(int seconds) void
setPageCacheSize
(int pageCacheSize) Set the page cache size.void
setParallelWorkers
(int parallelWorkers) Sets the number of parallel workers of the connection.void
setPassword
(String password) void
setPortNumber
(int portNumber) Set the port number of the server.void
setProcessId
(Integer processId) Sets a custom process id to send to Firebird on attach.void
setProcessName
(String processName) Sets a custom process name to send to Firebird on attachvoid
setReportSQLWarnings
(String reportSQLWarnings) Sets ifSQLWarning
should be reported byConnection.getWarnings()
,Statement.getWarnings()
, andResultSet.getWarnings()
.void
setRoleName
(String roleName) void
setScrollableCursor
(String scrollableCursor) Sets the type of scrollable cursor.void
setServerBatchBufferSize
(int serverBatchBufferSize) Sets the server batch buffer size (if server batch is supported and enabled).void
setServerName
(String serverName) Set the hostname or IP address of the Firebird server.void
setSessionTimeZone
(String sessionTimeZone) Sets thesessionTimeZone
.void
setSocketBufferSize
(int socketBufferSize) Set the socket buffer size.void
setSocketFactory
(String socketFactory) Sets the class name of a custom socket factory to be used for pure Java connections.void
setSoTimeout
(int soTimeout) Set the initial Socket blocking timeout (SoTimeout).void
setSqlDialect
(int sqlDialect) void
setTpbMapping
(String tpbMapping) Sets a resource bundle name with the TPB mapping.void
void
setUseCatalogAsPackage
(boolean useCatalogAsPackage) Sets whether to use catalogs to report packages in database metadata.void
setUseFirebirdAutocommit
(boolean useFirebirdAutocommit) Set whether to use Firebird autocommit (experimental).void
void
setUserName
(String userName) Deprecated.void
setUseServerBatch
(boolean useServerBatch) Sets whether to use server-side batch support, if available.void
setUseStreamBlobs
(boolean useStreamBlobs) void
setWireCompression
(boolean wireCompression) Sets if the connection should try to enable wire compression.void
setWireCrypt
(String wireCrypt) Set the wire encryption level.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
Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties
connectionPropertyValues, getBooleanProperty, getBooleanProperty, getIntProperty, getIntProperty, getProperty, getProperty, setBooleanProperty, setIntProperty, setProperty
Methods inherited from interface javax.sql.CommonDataSource
createShardingKeyBuilder
Methods inherited from interface org.firebirdsql.jdbc.FirebirdConnectionProperties
getTransactionParameters, setNonStandardProperty, setTransactionParameters
-
Constructor Details
-
AbstractConnectionPropertiesDataSource
public AbstractConnectionPropertiesDataSource()
-
-
Method Details
-
getServerName
Description copied from interface:AttachmentProperties
Get the hostname or IP address of the Firebird server.- Specified by:
getServerName
in interfaceAttachmentProperties
- Returns:
- Hostname or IP address of the server
- See Also:
-
setServerName
Description copied from interface:AttachmentProperties
Set the hostname or IP address of the Firebird server.When set to
null
(the default), thedatabaseName
orserviceName
is used as the full identification of the database host, port and database path/alias. Protocol implementations, for examplePURE_JAVA
, may default tolocalhost
when this property isnull
, butdatabaseName
/serviceName
does not (seem to) contain a host name.- Specified by:
setServerName
in interfaceAttachmentProperties
- Parameters:
serverName
- Hostname or IP address of the server
-
getPortNumber
public int getPortNumber()Description copied from interface:AttachmentProperties
Get the port number of the server.- Specified by:
getPortNumber
in interfaceAttachmentProperties
- Returns:
- Port number of the server
- See Also:
-
setPortNumber
public void setPortNumber(int portNumber) Description copied from interface:AttachmentProperties
Set the port number of the server.Defaults to
3050
. This property value will be ignored ifserverName
isnull
, unless the protocol implementation needs a hostname, but cannot find a hostname indatabaseName
/serviceName
.- Specified by:
setPortNumber
in interfaceAttachmentProperties
- Parameters:
portNumber
- Port number of the server- See Also:
-
getDatabaseName
Description copied from interface:DatabaseConnectionProperties
Gets the database of the connection.- Specified by:
getDatabaseName
in interfaceDatabaseConnectionProperties
- Returns:
- database name
- See Also:
-
setDatabaseName
Description copied from interface:DatabaseConnectionProperties
Sets the database of the connectionWhen
serverName
isnull
, the value is taken as the URL of the database, and exact interpretation depends on the protocol implementation (type
). Basically, the URL would be the JDBC URL, but without thejdbc:firebird[sql]:[subprotocol:]
prefix and without connection properties. Examples:- //localhost/employee — PURE_JAVA, NATIVE (for NATIVE, this format is parsed and transformed to the next example)
- localhost:employee — NATIVE, PURE_JAVA
- //localhost:3051/employee — PURE_JAVA, NATIVE (for NATIVE, this format is parsed and transformed to the next example)
- localhost/3051:employee — NATIVE, PURE_JAVA
- /path/to/your.fdb — NATIVE, EMBEDDED, PURE_JAVA (PURE_JAVA will use localhost
as
serverName
, depending on the Firebird version and platform, NATIVE may use Firebird Embedded) - C:\path\to\your.fdb — NATIVE, EMBEDDED (protocols like PURE_JAVA may attempt to connect to a server
called
C
, depending on the Firebird version and platform, NATIVE may use Firebird Embedded) - C:/path/to/your.fdb — NATIVE, EMBEDDED (protocols like PURE_JAVA may attempt to connect to a server
called
C
, depending on the Firebird version and platform, NATIVE may use Firebird Embedded) - xnet://employee — NATIVE (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may
attempt to connect to a server called
xnet
) - other Firebird
fbclient
connection URLs — NATIVE (EMBEDDED will behave as NATIVE, protocols like PURE_JAVA may interpret the protocol name as a host name - Custom
type
implementations may support other URL formats
Some protocols, for example PURE_JAVA, when
serverName
is not set, butdatabaseName
doesn't seem to contain a host name, may default to attempting to connect to localhost withdatabaseName
as the database path or alias.When
serverName
is set, the value is taken as the database path or alias. Examples:- employee
- /path/to/your.fdb
- C:\path\to\your.fdb
- C:/path/to/your.fdb
- relative/path/to/your.fdb — not recommended
- Specified by:
setDatabaseName
in interfaceDatabaseConnectionProperties
- Parameters:
databaseName
- database name
-
getType
- Specified by:
getType
in interfaceAttachmentProperties
- Returns:
- type of the connection, for example, "PURE_JAVA", "NATIVE", "EMBEDDED", depends on the GDS implementations installed in the system.
-
setType
- Specified by:
setType
in interfaceAttachmentProperties
- Parameters:
type
- type of the connection, for example, "PURE_JAVA", "NATIVE", "EMBEDDED", depends on the GDS implementations installed in the system.
-
getUser
- Specified by:
getUser
in interfaceAttachmentProperties
- Returns:
- Name of the user to authenticate to the server.
-
setUser
- Specified by:
setUser
in interfaceAttachmentProperties
- Parameters:
user
- Name of the user to authenticate to the server.
-
getPassword
- Specified by:
getPassword
in interfaceAttachmentProperties
- Returns:
- Password to authenticate to the server.
-
setPassword
- Specified by:
setPassword
in interfaceAttachmentProperties
- Parameters:
password
- Password to authenticate to the server.
-
getRoleName
- Specified by:
getRoleName
in interfaceAttachmentProperties
- Returns:
- SQL role to use.
-
setRoleName
- Specified by:
setRoleName
in interfaceAttachmentProperties
- Parameters:
roleName
- SQL role to use.
-
getCharSet
Description copied from interface:AttachmentProperties
Java character set configured for the connection.After connect, the actual Java character set applied can be obtained from
FbAttachment.getEncoding()
(propertycharsetName
), orFbAttachment.getEncodingFactory()
(propertiesdefaultEncoding.charsetName
or {code defaultEncodingDefinition.javaCharset}).- Specified by:
getCharSet
in interfaceAttachmentProperties
- Returns:
- Java character set for the connection (
null
when not explicitly configured).
-
setCharSet
Description copied from interface:AttachmentProperties
Set the Java character set for the connection.It is possible to set both the
charSet
andencoding
to achieve a character set conversion effect, but in general only one of both properties should be set.- Specified by:
setCharSet
in interfaceAttachmentProperties
- Parameters:
charSet
- Character set for the connection. Similar toencoding
property, but accepts Java names instead of Firebird ones.- See Also:
-
getEncoding
Description copied from interface:AttachmentProperties
Firebird character set configured for the connection.After connect, the actual Firebird character set applied can be obtained from
FbAttachment.getEncodingFactory()
, propertydefaultEncodingDefinition.firebirdEncodingName
.- Specified by:
getEncoding
in interfaceAttachmentProperties
- Returns:
- Firebird character encoding for the connection (
null
when not explicitly configured).
-
setEncoding
Description copied from interface:AttachmentProperties
Set the Firebird character set for the connection.It is possible to set both the
charSet
andencoding
to achieve a character set conversion effect, but in general only one of both properties should be set.- Specified by:
setEncoding
in interfaceAttachmentProperties
- Parameters:
encoding
- Firebird character encoding for the connection. See Firebird documentation for more information.- See Also:
-
getProcessId
- Specified by:
getProcessId
in interfaceAttachmentProperties
- Returns:
- Custom process id sent to Firebird on attach;
null
means the default is applied (read from system propertyorg.firebirdsql.jdbc.pid
, future versions may also determine the actual process id)
-
setProcessId
Description copied from interface:AttachmentProperties
Sets a custom process id to send to Firebird on attach.- Specified by:
setProcessId
in interfaceAttachmentProperties
- Parameters:
processId
- The process id to send;null
to apply the default behaviour (seeAttachmentProperties.getProcessId()
)
-
getProcessName
- Specified by:
getProcessName
in interfaceAttachmentProperties
- Returns:
- Custom process name sent to Firebird on attach;
null
means the default is applied (read from system propertyorg.firebirdsql.jdbc.processName
)
-
setProcessName
Description copied from interface:AttachmentProperties
Sets a custom process name to send to Firebird on attach- Specified by:
setProcessName
in interfaceAttachmentProperties
- Parameters:
processName
- The process name to send;null
to apply the default behaviour (seeAttachmentProperties.getProcessName()
)
-
getSocketBufferSize
public int getSocketBufferSize()Description copied from interface:AttachmentProperties
Get the socket buffer size.- Specified by:
getSocketBufferSize
in interfaceAttachmentProperties
- Returns:
- socket buffer size in bytes, or
-1
if not set
-
setSocketBufferSize
public void setSocketBufferSize(int socketBufferSize) Description copied from interface:AttachmentProperties
Set the socket buffer size.- Specified by:
setSocketBufferSize
in interfaceAttachmentProperties
- Parameters:
socketBufferSize
- socket buffer size in bytes.
-
getSoTimeout
public int getSoTimeout()Description copied from interface:AttachmentProperties
Get the initial Socket blocking timeout (SoTimeout).- Specified by:
getSoTimeout
in interfaceAttachmentProperties
- Returns:
- The initial socket blocking timeout in milliseconds (0 is 'infinite'), or
-1
if not set
-
setSoTimeout
public void setSoTimeout(int soTimeout) Description copied from interface:AttachmentProperties
Set the initial Socket blocking timeout (SoTimeout).- Specified by:
setSoTimeout
in interfaceAttachmentProperties
- Parameters:
soTimeout
- Timeout in milliseconds (0 is 'infinite')
-
getConnectTimeout
public int getConnectTimeout()Description copied from interface:AttachmentProperties
Get the connect timeout in seconds.- Specified by:
getConnectTimeout
in interfaceAttachmentProperties
- Returns:
- Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout), or
-1
if not set
-
setConnectTimeout
public void setConnectTimeout(int connectTimeout) Description copied from interface:AttachmentProperties
Set the connect timeout in seconds.- Specified by:
setConnectTimeout
in interfaceAttachmentProperties
- Parameters:
connectTimeout
- Connect timeout in seconds (0 is 'infinite', or better: OS specific timeout)
-
getLoginTimeout
This property is an alias for the connectTimeout property.
- Specified by:
getLoginTimeout
in interfaceCommonDataSource
- Throws:
SQLException
-
setLoginTimeout
This property is an alias for the connectTimeout property.
- Specified by:
setLoginTimeout
in interfaceCommonDataSource
- Throws:
SQLException
-
getWireCrypt
Description copied from interface:AttachmentProperties
Get the wire encryption level.- Specified by:
getWireCrypt
in interfaceAttachmentProperties
- Returns:
- Wire encryption level
-
setWireCrypt
Description copied from interface:AttachmentProperties
Set the wire encryption level.Values are defined by
WireCrypt
, values are handled case insensitive. Invalid values will throw an exception.- Specified by:
setWireCrypt
in interfaceAttachmentProperties
- Parameters:
wireCrypt
- Wire encryption level (null
not allowed)
-
getDbCryptConfig
Description copied from interface:AttachmentProperties
Get the database encryption plugin configuration.- Specified by:
getDbCryptConfig
in interfaceAttachmentProperties
- Returns:
- Database encryption plugin configuration, meaning plugin specific
-
setDbCryptConfig
Description copied from interface:AttachmentProperties
Sets the database encryption plugin configuration.- Specified by:
setDbCryptConfig
in interfaceAttachmentProperties
- Parameters:
dbCryptConfig
- Database encryption plugin configuration, meaning plugin specific
-
getAuthPlugins
Description copied from interface:AttachmentProperties
Get the list of authentication plugins to try.- Specified by:
getAuthPlugins
in interfaceAttachmentProperties
- Returns:
- comma-separated list of authentication plugins
-
setAuthPlugins
Description copied from interface:AttachmentProperties
Sets the authentication plugins to try.Invalid names are skipped during authentication.
- Specified by:
setAuthPlugins
in interfaceAttachmentProperties
- Parameters:
authPlugins
- comma-separated list of authentication plugins
-
isWireCompression
public boolean isWireCompression()Description copied from interface:AttachmentProperties
Get 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.conf
read by the client library will be used.- Specified by:
isWireCompression
in interfaceAttachmentProperties
- Returns:
true
wire compression enabled
-
setWireCompression
public void setWireCompression(boolean wireCompression) Description copied from interface:AttachmentProperties
Sets if the connection should try to enable wire compression.- Specified by:
setWireCompression
in interfaceAttachmentProperties
- Parameters:
wireCompression
-true
enable wire compression,false
disable wire compression (the default)- See Also:
-
getEnableProtocol
Description copied from interface:AttachmentProperties
Comma-separated list of additionally enabled protocols.By default, pure Java connections of Jaybird only supports the protocol versions of supported Firebird versions. This property lists the additionally enabled unsupported protocol versions. If Jaybird does not have a listed protocol, it is silently ignored.
This property is ignored for native connections.
- Specified by:
getEnableProtocol
in interfaceAttachmentProperties
- Returns:
- List of unsupported protocol versions to try in addition to the supported protocols. Comma-separated
using only the version number (e.g.
"10,11"
). Both the unmasked and masked version are supported (e.g.32780
for protocol12
), but we recommend to use the unmasked version. The value"*"
will try all available protocols.
-
setEnableProtocol
Description copied from interface:AttachmentProperties
Comma-separated list of additionally enabled protocols.- Specified by:
setEnableProtocol
in interfaceAttachmentProperties
- Parameters:
enableProtocol
- List of unsupported protocol versions to try in addition to the supported protocols.- See Also:
-
getSqlDialect
public int getSqlDialect()- Specified by:
getSqlDialect
in interfaceDatabaseConnectionProperties
- Returns:
- SQL dialect of the client connection
-
setSqlDialect
public void setSqlDialect(int sqlDialect) - Specified by:
setSqlDialect
in interfaceDatabaseConnectionProperties
- Parameters:
sqlDialect
- SQL dialect of the client connection.
-
getPageCacheSize
public int getPageCacheSize()Description copied from interface:DatabaseConnectionProperties
Get the page cache size.A value of
0
indicates that the value is not set, and that the server default is used.This option is only relevant for Firebird implementations with per connection cache (eg Classic)
NOTE: Implementer should take care to return
0
if the value hasn't been set yet.- Specified by:
getPageCacheSize
in interfaceDatabaseConnectionProperties
- Returns:
- size of cache in pages for this connection, can be specified for Classic and SuperClassic instances, ignored for SuperServer as the cache is shared; 0 when not set
-
setPageCacheSize
public void setPageCacheSize(int pageCacheSize) Description copied from interface:DatabaseConnectionProperties
Set the page cache size.A value of
0
indicates that the value is not set, and that the server default is used.This option is only relevant for Firebird implementations with per connection cache (eg Classic).
- Specified by:
setPageCacheSize
in interfaceDatabaseConnectionProperties
- Parameters:
pageCacheSize
- size of cache in pages for this connection, can be specified for Classic and SuperClassic instances ignored for SuperServer as the cache is shared.
-
getDataTypeBind
Description copied from interface:DatabaseConnectionProperties
Get thedataTypeBind
configuration.- Specified by:
getDataTypeBind
in interfaceDatabaseConnectionProperties
- Returns:
- configuration value for
dataTypeBind
, ornull
for driver default
-
setDataTypeBind
Description copied from interface:DatabaseConnectionProperties
Sets thedataTypeBind
configuration.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 BIND
statements with the values.See also Firebird documentation for
SET BIND
.- Specified by:
setDataTypeBind
in interfaceDatabaseConnectionProperties
- Parameters:
dataTypeBind
- Firebird 4+ data type bind configuration, a semicolon-separated list of<from-type> TO <to-type>
-
getSessionTimeZone
Description copied from interface:DatabaseConnectionProperties
Get thesessionTimeZone
.- Specified by:
getSessionTimeZone
in interfaceDatabaseConnectionProperties
- Returns:
- value for
sessionTimeZone
, ornull
for driver default (JVM default time zone)
-
setSessionTimeZone
Description copied from interface:DatabaseConnectionProperties
Sets thesessionTimeZone
.- Specified by:
setSessionTimeZone
in interfaceDatabaseConnectionProperties
- 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). For offset-based names, the value will be normalized to the Firebird name (e.g. GMT+05:00 is stored as +05:00).
-
getBlobBufferSize
public int getBlobBufferSize()- Specified by:
getBlobBufferSize
in interfaceDatabaseConnectionProperties
- Returns:
- BLOB buffer size in bytes; if the configured value is less than an implementation-specific minimum, that minimum is returned
-
setBlobBufferSize
public void setBlobBufferSize(int blobBufferSize) - Specified by:
setBlobBufferSize
in interfaceDatabaseConnectionProperties
- Parameters:
blobBufferSize
- size of the BLOB buffer in bytes
-
isUseStreamBlobs
public boolean isUseStreamBlobs()- Specified by:
isUseStreamBlobs
in interfaceDatabaseConnectionProperties
- Returns:
true
if stream blobs should be created, otherwisefalse
.
-
setUseStreamBlobs
public void setUseStreamBlobs(boolean useStreamBlobs) - Specified by:
setUseStreamBlobs
in interfaceDatabaseConnectionProperties
- Parameters:
useStreamBlobs
-true
if stream blobs should be created, otherwisefalse
.
-
isDefaultResultSetHoldable
public boolean isDefaultResultSetHoldable()Description copied from interface:DatabaseConnectionProperties
Get whether ResultSets are holdable by default.- Specified by:
isDefaultResultSetHoldable
in interfaceDatabaseConnectionProperties
- Returns:
true
ResultSets by default areResultSet.HOLD_CURSORS_OVER_COMMIT
,false
(default), ResultSets areResultSet.CLOSE_CURSORS_AT_COMMIT
-
setDefaultResultSetHoldable
public void setDefaultResultSetHoldable(boolean defaultResultSetHoldable) Description copied from interface:DatabaseConnectionProperties
Set ifResultSet
should beResultSet.HOLD_CURSORS_OVER_COMMIT
by default.- Specified by:
setDefaultResultSetHoldable
in interfaceDatabaseConnectionProperties
- Parameters:
defaultResultSetHoldable
-true
ResultSets are holdable,false
(default) ResultSets areResultSet.CLOSE_CURSORS_AT_COMMIT
-
isUseFirebirdAutocommit
public boolean isUseFirebirdAutocommit()Description copied from interface:DatabaseConnectionProperties
Get whether to use Firebird autocommit (experimental).- Specified by:
isUseFirebirdAutocommit
in interfaceDatabaseConnectionProperties
- Returns:
true
use Firebird autocommit
-
setUseFirebirdAutocommit
public void setUseFirebirdAutocommit(boolean useFirebirdAutocommit) Description copied from interface:DatabaseConnectionProperties
Set whether to use Firebird autocommit (experimental).- Specified by:
setUseFirebirdAutocommit
in interfaceDatabaseConnectionProperties
- Parameters:
useFirebirdAutocommit
-true
Use Firebird autocommit
-
isColumnLabelForName
public boolean isColumnLabelForName()Description copied from interface:DatabaseConnectionProperties
Gets the current setting ofcolumnLabelForName
- Specified by:
isColumnLabelForName
in interfaceDatabaseConnectionProperties
- Returns:
false
JDBC compliant behavior (columnName
is returned),true
compatibility option (columnLabel
is returned)- See Also:
-
setColumnLabelForName
public void setColumnLabelForName(boolean columnLabelForName) Description copied from interface:DatabaseConnectionProperties
Set ifResultSetMetaData.getColumnName(int)
returns thecolumnLabel
instead of thecolumnName
.The default behaviour (with
columnLabelForName=false
is JDBC-compliant. The behavior for valuetrue
is to provide compatibility with tools with a wrong expectation.- Specified by:
setColumnLabelForName
in interfaceDatabaseConnectionProperties
- Parameters:
columnLabelForName
-false
JDBC compliant behavior (columnName
is returned),true
compatibility option (columnLabel
is returned)
-
getGeneratedKeysEnabled
Description copied from interface:DatabaseConnectionProperties
Get thegeneratedKeysEnabled
configuration.- Specified by:
getGeneratedKeysEnabled
in interfaceDatabaseConnectionProperties
- Returns:
- configuration value for
generatedKeysEnabled
, ornull
for driver default
-
setGeneratedKeysEnabled
Description copied from interface:DatabaseConnectionProperties
Sets thegeneratedKeysEnabled
configuration.- Specified by:
setGeneratedKeysEnabled
in interfaceDatabaseConnectionProperties
- 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
)
-
isIgnoreProcedureType
public boolean isIgnoreProcedureType()Description copied from interface:DatabaseConnectionProperties
Get the value forignoreProcedureType
.- Specified by:
isIgnoreProcedureType
in interfaceDatabaseConnectionProperties
- Returns:
- value for
ignoreProcedureType
-
setIgnoreProcedureType
public void setIgnoreProcedureType(boolean ignoreProcedureType) Description copied from interface:DatabaseConnectionProperties
Sets the valueignoreProcedureType
.When set to true, the
CallableStatement
implementation 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:
setIgnoreProcedureType
in interfaceDatabaseConnectionProperties
- Parameters:
ignoreProcedureType
-true
Ignore procedure type
-
getDecfloatRound
- Specified by:
getDecfloatRound
in interfaceDatabaseConnectionProperties
- Returns:
- the server-side
DECFLOAT
rounding mode,null
applies the Firebird server default
-
setDecfloatRound
Description copied from interface:DatabaseConnectionProperties
Sets theDECFLOAT
rounding mode- Specified by:
setDecfloatRound
in interfaceDatabaseConnectionProperties
- Parameters:
decfloatRound
- Firebird 4+ server-sideDECFLOAT
rounding mode (ceiling, up, half_up, half_even, half_down, down, floor, reround
);null
to apply the Firebird server default (half_up
in Firebird 4)
-
getDecfloatTraps
- Specified by:
getDecfloatTraps
in interfaceDatabaseConnectionProperties
- Returns:
- the server-side
DECFLOAT
error traps,null
applies the Firebird server default
-
setDecfloatTraps
Description copied from interface:DatabaseConnectionProperties
Sets theDECFLOAT
error traps.- Specified by:
setDecfloatTraps
in interfaceDatabaseConnectionProperties
- Parameters:
decfloatTraps
- Firebird 4+ server-sideDECFLOAT
error traps; comma-separated list with optionsDivision_by_zero, Inexact, Invalid_operation, Overflow, Underflow
;null
to apply Firebird server default (Division_by_zero,Invalid_operation,Overflow
in Firebird 4)
-
getTpbMapping
Description copied from interface:DatabaseConnectionProperties
Get the used TPB mapping.- Specified by:
getTpbMapping
in interfaceDatabaseConnectionProperties
- Returns:
- resource bundle name of the TPB mapping
- See Also:
-
setTpbMapping
Description copied from interface:DatabaseConnectionProperties
Sets a resource bundle name with the TPB mapping.For compatibility reasons, the prefix
"res:"
is allowed, but this works exactly the same as without a prefix. We strongly recommend not to use the"res:"
prefix, future versions of Jaybird (Jaybird 7 or later) may stop supporting this.The resource bundle should contain 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 interfaceDatabaseConnectionProperties
- Parameters:
tpbMapping
- name of the resource bundle
-
getDefaultTransactionIsolation
public int getDefaultTransactionIsolation()Description copied from interface:DatabaseConnectionProperties
Get the default transaction isolation level. This is the transaction isolation level for the newly created connections.- Specified by:
getDefaultTransactionIsolation
in interfaceDatabaseConnectionProperties
- Returns:
- default transaction isolation level.
-
setDefaultTransactionIsolation
public void setDefaultTransactionIsolation(int defaultIsolationLevel) Description copied from interface:DatabaseConnectionProperties
Set the default transaction isolation level.- Specified by:
setDefaultTransactionIsolation
in interfaceDatabaseConnectionProperties
- Parameters:
defaultIsolationLevel
- default transaction isolation level.
-
getDefaultIsolation
Description copied from interface:DatabaseConnectionProperties
Get the default transaction isolation level as string. This method is complementary toDatabaseConnectionProperties.getDefaultTransactionIsolation()
, however it returns a string name instead of a numeric constant.- Specified by:
getDefaultIsolation
in interfaceDatabaseConnectionProperties
- Returns:
- default transaction isolation as string.
- See Also:
-
setDefaultIsolation
Description copied from interface:DatabaseConnectionProperties
Set the default transaction isolation level as string. This method is complementary toDatabaseConnectionProperties.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.- Integer string values matching the isolation levels
- Specified by:
setDefaultIsolation
in interfaceDatabaseConnectionProperties
- Parameters:
isolation
- string constant representing a default isolation level.
-
getScrollableCursor
- Specified by:
getScrollableCursor
in interfaceDatabaseConnectionProperties
- Returns:
- Configuration of scrollable cursors, either
EMULATED
(default) orSERVER
(case-insensitive) - See Also:
-
setScrollableCursor
Description copied from interface:DatabaseConnectionProperties
Sets the type of scrollable cursor.Possible values are (case-insensitive):
EMULATED
(default) - emulate scrollable cursors in memory by fetching all rowsSERVER
- user server-side scrollable cursor (requires Firebird 5.0 and pure-java connection). Falls back toEMULATED
behaviour when server-side support is not available, or when holdable cursors are requested
- Specified by:
setScrollableCursor
in interfaceDatabaseConnectionProperties
- Parameters:
scrollableCursor
- Scrollable cursor type, one ofEMULATED
orSERVER
(case-insensitive)
-
isUseServerBatch
public boolean isUseServerBatch()- Specified by:
isUseServerBatch
in interfaceDatabaseConnectionProperties
- Returns:
true
(default) use server-side batch if supported by server,false
always use emulated batch- See Also:
-
setUseServerBatch
public void setUseServerBatch(boolean useServerBatch) Description copied from interface:DatabaseConnectionProperties
Sets whether to use server-side batch support, if available.Currently, server-side batch is only supported with Firebird 4.0 or higher, with a pure Java connection, using a
PreparedStatement
, but not aCallableStatement
, and only when not requesting generated keys.The implementation will fall back to emulated batches if either the server version doesn't support batches, or if the statement cannot be executed using the server-side batch mechanism for other reasons (e.g. requesting generated keys).
- Specified by:
setUseServerBatch
in interfaceDatabaseConnectionProperties
- Parameters:
useServerBatch
-true
, use server-side batch support if possible,false
always use emulated batch
-
getServerBatchBufferSize
public int getServerBatchBufferSize()- Specified by:
getServerBatchBufferSize
in interfaceDatabaseConnectionProperties
- Returns:
- batch buffer size in bytes,
< 0
to use server-side default (16MB as of Firebird 4.0),0
(default) to use server-side maximum (256MB as of Firebird 4.0), values exceeding server-side maximum will set server-side maximum - See Also:
-
setServerBatchBufferSize
public void setServerBatchBufferSize(int serverBatchBufferSize) Description copied from interface:DatabaseConnectionProperties
Sets the server batch buffer size (if server batch is supported and enabled).- Specified by:
setServerBatchBufferSize
in interfaceDatabaseConnectionProperties
- Parameters:
serverBatchBufferSize
- server batch buffer size in bytes, use< 0
to set server-side default (16MB as of Firebird 4.0), use0
to use server-side maximum (256MB as of Firebird 4.0), values exceeding server-side maximum will set server-side maximum
-
getParallelWorkers
public int getParallelWorkers()- Specified by:
getParallelWorkers
in interfaceAttachmentProperties
- Returns:
- number of parallel workers,
-1
means no value was set (or it was explicitly set to-1
)
-
setParallelWorkers
public void setParallelWorkers(int parallelWorkers) Description copied from interface:AttachmentProperties
Sets the number of parallel workers of the connection.Requires Firebird 5.0 or higher, and a Firebird server configured with
MaxParallelWorkers
higher than specified byparallelWorkers
.NOTE: For service attachments, this property controls behaviour only for specific operations, and requires Jaybird to explicitly set the parallel workers for that operation.
- Specified by:
setParallelWorkers
in interfaceAttachmentProperties
- Parameters:
parallelWorkers
- number of parallel workers
-
getSocketFactory
Description copied from interface:AttachmentProperties
The class name of a custom socket factory to be used for pure Java connections.- Specified by:
getSocketFactory
in interfaceAttachmentProperties
- Returns:
- fully-qualified class name of a
SocketFactory
implementation, or (default)null
for the default socket factory - See Also:
-
setSocketFactory
Description copied from interface:AttachmentProperties
Sets the class name of a custom socket factory to be used for pure Java connections.The class must extend
SocketFactory
and have a public single-arg constructor accepting aProperties
, or a public no-arg constructor. TheProperties
object passed in the first case contains custom connection properties with the suffix@socketFactory
, and — possibly — other selected properties.- Specified by:
setSocketFactory
in interfaceAttachmentProperties
- Parameters:
socketFactory
- fully-qualified class name of aSocketFactory
implementation, ornull
for the default socket factory
-
isUseCatalogAsPackage
public boolean isUseCatalogAsPackage()- Specified by:
isUseCatalogAsPackage
in interfaceDatabaseConnectionProperties
- Returns:
true
database metadata uses catalogs to report packages,false
(default) no catalogs, and packages and their procedures and functions are not accessible- See Also:
-
setUseCatalogAsPackage
public void setUseCatalogAsPackage(boolean useCatalogAsPackage) Description copied from interface:DatabaseConnectionProperties
Sets whether to use catalogs to report packages in database metadata.When set to
true
, database metadata will return the names of packages fromDatabaseMetaData.getCatalogs()
, andDatabaseMetaData.getFunctions(String, String, String)
,DatabaseMetaData.getFunctionColumns(String, String, String, String)
,DatabaseMetaData.getProcedures(String, String, String)
, andDatabaseMetaData.getProcedureColumns(String, String, String, String)
will include information on packaged procedures and functions.The behaviour of the input parameter
catalog
of these methods is modified compared to the default behaviour:null
: both packaged and top-level procedures/functions are searched""
(empty string): only top-level procedures/functions are searched- non-empty string: only procedures/functions in the named package are searched (NOTE: exact match, case-sensitive)
The returned result set is modified compared to the default behaviour:
PROCEDURE_CAT
/FUNCTION_CAT
: for top-level procedures/functions, its value is""
(empty string) — notnull
— to account for behaviour of parameterpackage
when searching metadataSPECIFIC_NAME
: for packaged procedures/functions will report<quoted-package-name>.<quoted-routine-name>
Return values of other metadata methods are changed to match:
DatabaseMetaData.getCatalogSeparator()
,DatabaseMetaData.getCatalogTerm()
,DatabaseMetaData.isCatalogAtStart()
,DatabaseMetaData.getMaxCatalogNameLength()
,DatabaseMetaData.supportsCatalogsInDataManipulation()
,DatabaseMetaData.supportsCatalogsInProcedureCalls()
- Specified by:
setUseCatalogAsPackage
in interfaceDatabaseConnectionProperties
- Parameters:
useCatalogAsPackage
-true
database metadata uses catalogs to report packages,false
(default) no catalogs, and packages and their procedures and functions are not accessible
-
isAllowTxStmts
public boolean isAllowTxStmts()- Specified by:
isAllowTxStmts
in interfaceDatabaseConnectionProperties
- Returns:
true
if execution ofCOMMIT [WORK]
,ROLLBACK [WORK]
orSET TRANSACTION [..]
is allowed,false
(default) to throw an exception when attempting to execute or prepare such statements- See Also:
-
setAllowTxStmts
public void setAllowTxStmts(boolean allowTxStmts) Description copied from interface:DatabaseConnectionProperties
Sets whether transaction management statements with (hard) transaction boundaries are allowed to be prepared or executed.Setting to
true
will enable Jaybird to execute equivalent operations through the JDBC API (specifically,Statement.execute(String)
,Statement.executeUpdate(String)
,Statement.executeLargeUpdate(String)
and siblings, and statements prepared withConnection.prepareStatement(String)
and siblings. Using callable statements (e.g. usingConnection.prepareCall(String)
),Statement.executeQuery(String)
, or batch execution is never supported.The implementation is free to execute the provided statement text or use an equivalent operation that has the same effect.
Setting this configuration to
true
only affects the JDBC API, and has no effect on direct use of the GDS-ng API.- Specified by:
setAllowTxStmts
in interfaceDatabaseConnectionProperties
- Parameters:
allowTxStmts
-true
to allow execution ofCOMMIT [WORK]
,ROLLBACK [WORK]
orSET TRANSACTION [..]
,false
(default) to throw an exception when attempting to execute or prepare such statements
-
isExtendedMetadata
public boolean isExtendedMetadata()- Specified by:
isExtendedMetadata
in interfaceDatabaseConnectionProperties
- Returns:
true
(default) if metadata (e.g.ResultSetMetaData
) will perform additional queries for more detailed information,false
if only the available bind information will be used- See Also:
-
setExtendedMetadata
public void setExtendedMetadata(boolean extendedMetadata) Description copied from interface:DatabaseConnectionProperties
Sets if certain metadata classes will perform additional queries to enrich the information for certain types.Currently this is used only by
ResultSetMetaData
for itsgetPrecision
andisAutoIncrement
methods. If disabled, these methods will return an estimated precision, orfalse
for auto-increment instead of actual precision and identity column state information.Disabling this setting may improve performance of querying metadata information, in exchange for less precise information.
- Specified by:
setExtendedMetadata
in interfaceDatabaseConnectionProperties
- Parameters:
extendedMetadata
-true
(default) - metadata (e.g.ResultSetMetaData
) will perform additional queries for more detailed information,false
- only the available bind information will be used
-
isCreateDatabaseIfNotExist
public boolean isCreateDatabaseIfNotExist()- Specified by:
isCreateDatabaseIfNotExist
in interfaceDatabaseConnectionProperties
- Returns:
false
(default) if failure to connect does nothing,true
if some classes of connection failures will result in an attempt to create the database- See Also:
-
setCreateDatabaseIfNotExist
public void setCreateDatabaseIfNotExist(boolean createDatabaseIfNotExist) Description copied from interface:DatabaseConnectionProperties
Sets if an attempt should be made to create a database if it does not exist.If the connection fails because the database cannot be opened, Jaybird will attempt to create the database. Additional or overridden properties can be set using
BaseProperties.setProperty(String, String)
by suffixing the property name with@create
.As Firebird does not clearly report that a database does not exist (e.g. it may exist, but not be accessible to the server, etc.), and the errors may be OS-specific, the attempt to create may fail. Jaybird may try to use some heuristics to avoid creation for some errors, but this is an implementation details which may change in point releases.
- Specified by:
setCreateDatabaseIfNotExist
in interfaceDatabaseConnectionProperties
- Parameters:
createDatabaseIfNotExist
-false
(default) if failure to connect does nothing,true
if some classes of connection failures will result in an attempt to create the database
-
getReportSQLWarnings
- Specified by:
getReportSQLWarnings
in interfaceDatabaseConnectionProperties
- Returns:
ALL
(default) ifSQLWarning
should be reported byConnection
,Statement
andResultSet
,NONE
ifSQLWarning
should not be reported- See Also:
-
setReportSQLWarnings
Description copied from interface:DatabaseConnectionProperties
Sets ifSQLWarning
should be reported byConnection.getWarnings()
,Statement.getWarnings()
, andResultSet.getWarnings()
.Allowed values (case-insensitive):
- ALL — (default) report all
SQLWarning
- NONE — report no
SQLWarning
; this behaviour is not JDBC-compliant
The default value can be overridden by setting system property
org.firebirdsql.jdbc.defaultReportSQLWarnings
.- Specified by:
setReportSQLWarnings
in interfaceDatabaseConnectionProperties
- Parameters:
reportSQLWarnings
-ALL
(default) ifSQLWarning
should be reported byConnection
,Statement
andResultSet
,NONE
ifSQLWarning
should not be reported; settingnull
will useALL
- ALL — (default) report all
-
isAsyncFetch
public boolean isAsyncFetch()Description copied from interface:DatabaseConnectionProperties
Gets if async fetching is enabled or disabled (pure Java only).This property may get removed in Jaybird 7 or later, once this async fetching has proven itself.
- Specified by:
isAsyncFetch
in interfaceDatabaseConnectionProperties
- Returns:
true
(default) async fetching is enabled,false
async fetching is disabled- See Also:
-
setAsyncFetch
public void setAsyncFetch(boolean asyncFetch) Description copied from interface:DatabaseConnectionProperties
Sets if async fetching is enabled or disabled (pure Java only).The default value can be overridden by setting system property
org.firebirdsql.jdbc.defaultAsyncFetch
.This property may get removed in Jaybird 7 or later, once this async fetching has proven itself.
- Specified by:
setAsyncFetch
in interfaceDatabaseConnectionProperties
- Parameters:
asyncFetch
-true
(default) async fetching is enabled,false
async fetching is disabled
-
getUserName
Deprecated.- Specified by:
getUserName
in interfaceFirebirdConnectionProperties
- Returns:
- name of the user that will be used when connecting to the database.
-
setUserName
Deprecated.- Specified by:
setUserName
in interfaceFirebirdConnectionProperties
- Parameters:
userName
- name of the user that will be used when connecting to the database.
-