Reference | Help | Introduction | Slide Show | Class Hierarchy | InterClient
PREV | NEXT | FRAMES | NO FRAMES |  |

### 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

- New Interfaces
- New Classes
- Extensions to the Standard Classes
- New Exceptions

JDBC 2 APIs

- JDBC 2 Standard Extension API and Related InterClient Extensions
- JDBC 2 Core API and Related InterClient Extensions

Appendix

- Common Administrative Tasks Without Direct Method Invocations
- Open Issues

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
  - adapt, revert - enable or disable an adaptation
  - RIGHT_TRIM_STRINGS, SINGLE_INSTANCE_TIME - modifiers for result set adaptations

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

- ConnectionProperties - deprecated, see DataSource and Connection Properties for a specification of transient connection properties and pre-connect action requests

- 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
  - getParameterCount, getParameterType, getParameterTypeName, getPrecision, getScale, isNullable

- Resources - localized error messages and other hard-wired text within the driver
  - getContents

- 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
  - getParameterMetaData, getResultSetMetaData

- ResultSet - adds a single convenience method and implements the Adaptor interface
  - isNull - less portable but more convenient than wasNull
  - adapt, revert - Adaptor implementation

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
  - getObjectInstance - reconstitutes a data source object from a JNDI reference

- PooledConnection
  - addConnectionEventListener, removeConnectionEventListener, getConnection, close

- ConnectionPoolDataSource
  - getPooledConnection, getPooledConnection, getLoginTimeout, setLoginTimeout, getLogWriter, setLogWriter

- ConnectionPoolModule
  - getConnection, getConnection, getDataSourceName, getLoginTimeout, setLoginTimeout, getLogWriter, setLogWriter, getReference, setDataSourceName

- ConnectionCache
  - connectionClosed, connectionErrorOccurred, lookup

- XAConnection
  - getXAResource

- XADataSource
  - getXAConnection, getXAConnection, getLogWriter, setLogWriter, setLoginTimeout, getLoginTimeout

- XAResource
  - commit, end, forget, getTransactionTimeout, prepare, recover, rollback, setTransactionTimeout, start

JDBC 2 Core API and Related InterClient Extensions

- Array
  - getBaseTypeName, getBaseType
  - getArray, getArray, getArray, getArray, getArray
  - getResultSet, getResultSet, getResultSet, getResultSet, getResultSet

- ParameterMetaData
  - getArrayBaseType, getArrayDimensions

- PreparedStatement
  - getMetaData, setArray, prepareArray

- ResultSet
  - getStatement, getArray, getArray

- ResultSetMetaData
  - getArrayBaseType, getArrayDimensions

- Statement
  - setFetchSize, getConnection

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.

Reference | Help | Introduction | Slide Show | Class Hierarchy | InterClient
PREV | NEXT | FRAMES | NO FRAMES |  |

Send comments or suggestions to interclient@interbase.com