InterBase

InterBase® is an efficient and powerful RDBMS engine. Its vendor, Borland/Inprise, has released InterBase version 6.0 as an open-source product. For more information and product downloads see:

http://www.interbase.com

InterClient

The JDBC driver for InterBase is called InterClient™ The InterClient system includes an all-Java thin client, and a server-side daemon (also known as a service on Microsoft Windows NT) called InterServer. This daemon accepts JDBC connection requests and in turn connects to the InterBase RDBMS daemon. The three processes (JDBC client, InterServer daemon, InterBase daemon) can run all on separate hosts, all on the same host, or in any other combination.

InterClient is a class 3 JDBC driver in that it has a separate daemon on the server to serve JDBC connections; however, it also matches the definition of a class 4 driver because the client component can connect only to one DBMS back-end, InterBase.

InterClient is installed separately from InterBase. On Windows, InterClient is commonly installed in:

C:\Program Files\Borland\InterClient\interclient.jar

Depending on the version of InterClient, it might instead be installed in:

C:\Program Files\InterBase Corp\InterClient\interclient.jar

Find the JAR file and append its location to your system CLASSPATH environment variable on the client host where you run Java applications.

Different versions of InterClient are available.

  • InterClient version 1.50x works only with JDK 1.1x

  • InterClient version 1.51x works only with JDK 1.2.x

Whichever version of InterClient you use, you must use the matching version of InterServer.

Configuration

You need to configure both the dods.conf and your <application>.conf to support InterClient.

DODS configuration

You should apply the following configuration edits to dods.conf to make the Standard_JDBC database class match InterBase features. This is necessary because there is not yet a specific com.lutris.appserver.server.sql.interbase package in the Enhydra sources.

Database.OidDbType.Standard_JDBC= "DECIMAL(9,0)"
Database.BitType.Standard_JDBC= "SMALLINT"
Database.TimeType.Standard_JDBC= "DATE"
Database.TimestampType.Standard_JDBC= "DATE"
Database.OnCascadeDelete.Standard_JDBC= true
Database.StringQuoteCharacter.Standard_JDBC= '
Database.StringMatch.Standard_JDBC= "LIKE"
Database.StringWildcard.Standard_JDBC= "%"

Application configuration

This section presents an example of an Interbase configuration, where <database_id> is your database identifier.

#--------------------------------------------------------------------
# Database Manager Configuration
# InterBase / InterClient
#--------------------------------------------------------------------
DatabaseManager.Databases[] = "<database_id>"
DatabaseManager.DefaultDatabase = "<database_id>"
DatabaseManager.Debug = "false"
DatabaseManager.DB.<database_id>.ClassType = "Standard"
DatabaseManager.DB.<database_id>.JdbcDriver = "interbase.interclient.Driver"
DatabaseManager.DB.<database_id>.Connection.Url =
"jdbc:interbase://loopback/<path_to_database>"
DatabaseManager.DB.<database_id>.Connection.User = "sysdba"
DatabaseManager.DB.<database_id>.Connection.Password = "masterkey"

Configuration notes

The JDBC driver class is interbase.interclient.Driver.

Server name

The general URL format for InterClient JDBC connections is as follows:

jdbc:interbase://servername/<path_to_database>

where <path_to_database> is the full path to the database file, including the name of the database (for example, /usr/local/data/inventory.gdb).

The servername is the hostname or IP address of the server running InterServer, the server-side daemon that accepts JDBC connection requests. If your Enhydra application runs on the same host where InterServer runs, you can use the special servername loopback.

Pathnames

The <path_to_database> is an absolute path to the InterBase database file on the server where the InterBase RDBMS server runs. InterBase does not have abstract handles to databases, like some database products do (for example, Oracle SIDs or BDE aliases). You must specify the real path to the database. You cannot use mapped drives or NFS filesystems in this path.

Notice the literal slash character (/) following the server name. If the absolute path starts with a slash character (/), then you should have a pair of slash characters (//) together. For example:

jdbc:interbase://servername//usr/local/data/inventory.gdb

If the server is a Windows host, the path starts with a drive letter identifier:

jdbc:interbase://servername/C:/data/inventory.gdb

If InterServer runs on a different host than the InterBase RDBMS server, you must specify this host in the path to database, with the following syntax:

jdbc:interbase://<interserver_host>/<interbase_host>:<path_to_database>

Tip

Slash (/) and backslash (\) characters within path names are interchangeable to InterBase; the InterBase daemon translates these characters as needed to match the convention on the server platform. It is easier to use slashes in code, however, because escape sequences are required to represent backslashes in code.

Ports

nterBase does not take a port number argument in connection strings. InterClient and InterServer always communicate using the TCP/IP service named interserver, which defaults to port 3060. InterServer and InterBase always communicate using the TCP/IP service named gds_db , which defaults to port 3050. These services and port numbers are registered with IANA.

Username and password

The username sysdba and its default password masterkey are used in the example configuration above, but for security reasons it is recommended that you: (a) change the default sysdba password on your InterBase server, and (b) create a non-superuser login in the InterBase password database, and use that login for general database access.