6.1 Smart Configuration

The JDBC driver can recognize the supported set of third-party JDBC drivers and databases. Also, the driver can dynamically and automatically configure the majority of driver compatibility parameters. These features alleviate the need for the end user to understand and explicitly set such parameters.

These features are implemented via the following four types of XML descriptor files, which describe a third-party JDBC driver or database to the JDBC driver.

In addition to pre-defined descriptor files, you can create custom descriptor files for a database or third-party JDBC driver.

Specifying Custom Descriptor Files

You can force the driver to use a custom descriptor file for a database or third-party JDBC driver. To specify a custom database descriptor file, see Database Descriptor Filename. To specify a custom third-party driver descriptor file, see JDBC Driver Descriptor Filename. This is useful when multiple descriptor files exist for the same database or third-party JDBC driver. For the custom descriptor file to take effect, set the driver parameter as the jdbc-driver-descriptor.

Reserved Filenames for Descriptor Files

Descriptor filenames that ship with the driver begin with the underscore character ( _ ). Such filenames are reserved to ensure that descriptor files that ship with the driver do not conflict with custom descriptor files. Obviously, custom descriptor filenames must not begin with the underscore character.

Import Descriptor Files

Import descriptor files allow multiple, nonimport descriptor files to share content. This functionality reduces the size of nonimport descriptor files, minimizes the need for repetition of content, and increases maintainability. Import files cannot be imported across major types. That is, JDBC driver descriptors cannot import database imports, and database descriptors cannot import JDBC driver imports.

Furthermore, custom nonimport descriptors cannot import reserved descriptor imports. For example, if a custom third-party JDBC driver descriptor file named custom.xml tries to import a reserved third-party JDBC driver descriptor named _reserved.xml, an error is issued. These limitations accomplish the following:

Descriptor File Locations

Descriptor files must be located in a jar file whose name begins with the prefix “jdbc” (case-insensitive) and resides in the runtime classpath.

The following table identifies where to place descriptors within a descriptor jar file:

Table 6-1 Where to Place Descriptors

Descriptor Type

Directory Path

Third-party JDBC driver

com/novell/nds/dirxml/driver/jdbc/db/descriptor/driver

Third-party JDBC driver import

com/novell/nds/dirxml/driver/jdbc/db/descriptor/driver/import

Database

com/novell/nds/dirxml/driver/jdbc/db/descriptor/db

Database import

com/novell/nds/dirxml/driver/jdbc/db/descriptor/db/import

Reserved descriptor files are located in the JDBCConfig.jar file. To ensure that these reserved files are not overwritten when the Driver for JDBC is updated, place custom descriptors in a different jar file.

Precedence

Parameters explicitly specified through a management console, such as iManager, always have precedence over parameters specified through descriptor files. Descriptor file parameters only take effect when a parameter is not set through the management console.

Parameters and other information specified in a nonimportable descriptor file always have precedence over that specified in descriptor import files. If a parameter or other information is duplicated within a descriptor file, the first instance of the parameter or information takes precedence over subsequent instances.

Between import files, precedence is determined by import order. Import files declared earlier in the import list take precedence over those that follow.

Custom Descriptor Best Practices

Descriptor File DTDs

The following appendixes contain DTDs for all descriptor file types. These DTDs can help you construct custom descriptor files.

Table 6-2 Where to Find Descriptor DTDs

Descriptor Type

Appendix

Third-party JDBC driver

Section F.0, Third-Party JDBC Driver Descriptor DTD

Third-party JDBC driver import

Section G.0, Third-Party JDBC Driver Descriptor Import DTD

Database

Section H.0, Database Descriptor DTD

Database import

Section I.0, Database Descriptor Import DTD