InterClient Extension API
This is a list of InterClient extensions to the JDBC API.
These extensions either surface unique features of the InterBase engine
not surfaced by the standard JDBC API, or they extend JDBC functionality
in some way. These extensions are not related to the JDBC Standard Extension API.
There are four APIs implemented by the InterClient driver:
- JDBC 1 API
- InterClient Extension API
- JDBC 2 Core API
- JDBC 2 Standard Extension API
Each API represents a set of interfaces which are implemented
by a JDBC vendor. All four APIs are known collectively as the
InterClient API for the InterClient driver implementation.
All classes and class members in the InterClient API
are tagged as an implementation from one of these four APIs
in the Method Details sections throughout
the InterClient API Reference.
Core InterClient Extension API
JDBC 2 APIs
Appendix
Links marked in green represent extension functionality
that has existed since InterClient 1.50.
Links marked in orange represent functionality
proposed for InterClient 2.0.
Links marked in red represent functionality
proposed for InterClient 2.1, or a later future release.
Some of this functionality may rely on underlying engine support which
is not yet released or is currently being developed.
New Interfaces
-
Adaptor
- provides a means to modify the standard behavior of an InterClient JDBC object
New Classes
-
CharacterEncodings
- an enumeration of character encodings supported by the driver
-
NONE,
_8859_1,
Big5,
Cp1250,
Cp1251,
Cp1252,
Cp1253,
Cp1254,
Cp437,
Cp850,
Cp852,
Cp857,
Cp860,
Cp861,
Cp863,
Cp865,
EUCJIS,
GB2312,
KSC5601,
SJIS,
UTF8
-
getInterBaseCharacterSetName,
getSupportedEncodings
-
DatabaseStatistics
- database-wide read/write statistics and table operation counts
-
getDiskReads,
getDiskWrites,
getMemoryReads,
getMemoryWrites
- page reads/writes to disk or cache
-
getBackoutCount,
getDeleteCount,
getExpungeCount,
getIndexedReadCount,
getInsertCount,
getPurgeCount,
getSequentialReadCount,
getUpdateCount
- table operation counts, see comment in Open Issues section below
-
ErrorCodes
- an enumeration of InterClient error codes; also see
SQL State codes
-
badInstallation,
bugCheck,
characterEncoding,
communication,
driverNotCapable,
invalidOperation,
missingResourceBundle,
outOfMemory,
remoteProtocol,
socketTimeout,
unknownHost,
unlicensedComponent
-
ParameterMetaData
- extensions for describing the input columns of a parameterized prepared statement
-
Resources
- localized error messages and other hard-wired text within the driver
-
ServerManager
- extensions for administering an InterBase server
-
getInterServerMajorVersion,
getInterServerMinorVersion,
getInterServerBuildNumber,
getInterServerBuildCertificationLevel,
getInterServerJDBCNetProtocolVersion,
getInterServerExpirationDate,
getInterServerPort
- getting interserver version information
-
getInterBaseVersion,
getDatabasesInUse,
getNumberOfInterBaseConnectionsInUse,
getLockActivityStream
- getting server-wide information
-
startInterBase,
stopInterBase
- starting and stopping the server
-
reserveSpaceForVersioning,
setDatabaseCachePages,
setDatabaseReadWrite,
setSweepInterval,
useSynchronousWrites
- setting persistent database properties
-
takeOffline,
bringOnline,
backup,
backup,
restore,
restore,
sweep,
verify,
repair,
createShadow,
createShadow,
activateShadow,
deleteShadow,
createDatabase,
deleteDatabase,
getLimboTransactions,
rollbackTransactions,
commitTransactions,
twoPhaseCommitTransactions
- service requests on a database
-
getStatisticsText
- getting database-wide information; also see DatabaseMetaData extensions
-
addInterBaseLicense,
deleteInterBaseLicense,
getInterBaseLicenses
- administering licenses
-
getRegisteredUsers,
addUser,
deleteUser,
modifyUser,
modifyUser
- administering users
-
getWarnings,
clearWarnings,
finalize,
close
- miscellaneous methods
Extensions to the Standard Classes
-
Connection
- extensions for InterBase transactions
-
TRANSACTION_SNAPSHOT,
TRANSACTION_SNAPSHOT_TABLE_STABILITY
- additional isolation levels
-
setLockResolution,
getLockResolution,
LOCK_RESOLUTION_WAIT,
LOCK_RESOLUTION_NO_WAIT
-
setVersionAcknowledgement,
getVersionAcknowledgement,
IGNORE_UNCOMMITTED_RECORD_VERSIONS_ON_READ,
RECOGNIZE_UNCOMMITTED_RECORD_VERSIONS_ON_READ
- read-committed versioning modes
-
setTableLock,
getTableLock,
TABLELOCK_SHARED_WRITE,
TABLELOCK_SHARED_READ,
TABLELOCK_PROTECTED_WRITE,
TABLELOCK_PROTECTED_READ
-
commitRetain,
getTransactionId,
inTransaction
- miscellaneous transaction methods
-
DatabaseMetaData
- extensions for additional driver and database information
-
getInterServerVersion,
getInterServerMajorVersion,
getInterServerMinorVersion,
getInterServerJDBCNetProtocolVersion,
getInterServerExpirationDate,
getInterServerPort
- interserver information
-
getDriverJDBCNetProtocolVersion,
getDriverExpirationDate
- additional interclient driver information
-
getDatabaseMajorVersion,
getODSMajorVersion,
getODSMinorVersion
- additional database version information
-
getActualCachePagesInUse,
getPersistentDatabaseCachePages,
getPageAllocation,
getPageSize,
getSweepInterval,
isDatabaseReadWrite,
reservingSpaceForVersioning,
usingSynchronousWrites,
getStatistics,
getUsersConnected,
getUDFs
- additional database information
-
Driver
- extensions for additional driver information
-
getBuildNumber,
getBuildCertificationLevel,
testBuild,
betaBuild,
finalBuild
- build information
-
clientServerEdition,
expiredDriver,
getCompanyName,
getCompatibleJREVersions,
getCompatibleIBVersions,
getExpirationDate,
getJDBCNetProtocol,
getJDBCNetProtocolVersion
- additional version information
-
PreparedStatement
- extensions for getting metadata dynamically
-
ResultSet
- adds a single convenience method and implements the Adaptor interface
New Exceptions
-
BlobIOException
- a java.io.IOException subclass
-
BadInstallationException,
BugCheckException,
CharacterEncodingException,
ColumnConversionException,
ColumnIndexOutOfBoundsException,
CommunicationException,
CorruptDatabaseException,
DataConversionException,
DeadlockException,
DriverNotCapableException,
EscapeSyntaxException,
ExpiredDriverException,
ExpiredDriverWarning,
InvalidArgumentException,
InvalidOperationException,
LockConflictException,
OutOfMemoryException,
ParameterConversionException,
ParameterIndexOutOfBoundsException,
RemoteProtocolException,
SocketTimeoutException,
UnauthorizedUserException,
UnavailableDatabaseFileException,
UnavailableInterBaseServerException,
UnknownHostException,
UnlicensedComponentException,
UnsupportedCharacterSetException,
UpdateConflictException,
URLSyntaxException
- java.sql.SQLException subclasses
JDBC 2 Standard Extension API and Related InterClient Extensions
-
DataSource
- a factory for Connections and ServerManagers
-
getDatabaseName,
getDataSourceName,
getDescription,
getNetworkProtocol,
getPassword,
getPortNumber,
getRoleName,
getServerName,
getUser
- standard property getter methods
-
getCharSet,
getInterBaseLicense,
getServerManagerHost,
getSuggestedCachePages,
getSweepOnConnect
- non-standard property getter methods
-
setDatabaseName,
setDataSourceName,
setDescription,
setNetworkProtocol,
setPassword,
setPortNumber,
setRoleName,
setServerName,
setUser
- standard property setter methods
-
setCharSet,
setInterBaseLicense,
setServerManagerHost,
setSuggestedCachePages,
setSweepOnConnect
- non-standard property setter methods
-
getServerManager,
getServerManager
- extension as a factory for ServerManagers
-
getConnection,
getConnection,
setLogWriter,
getLogWriter,
setLoginTimeout,
getLoginTimeout
- javax.sql.DataSource implementation
-
getReference
- javax.naming.Referenceable implementation
-
ObjectFactory
- generates InterClient data source objects from JNDI references
JDBC 2 Core API and Related InterClient Extensions
Common Administrative Tasks Without Direct Method Invocations
- To change database page size, use backup and restore.
See the InterBase Operations Guide for details.
- To activate or deactivate database indices, use backup and restore.
See the InterBase Operations Guide for details.
- To create a multi-file database, use backup and restore.
The only way to change the number of database files after creation is to
backup and then restore the database specifying the secondary database files.
See the InterBase Operations Guide for details.
- To create a shadow file execute the SQL command
CREATE SHADOW
on a connection to the database.
Open Issues
- Should createDatabase() take the sqlDialect in the property map?
- Should a timeout be specified for service queries?
May want to introduce a setServiceTimeout(int) method to ServerManager?
- Limbo transaction stuff is complicated, this will need to be ironed out.
Method signatures wrt limbo transactions may change.
Send comments or suggestions to interclient@interbase.com