DB Link Libraries

This section provides a table of the DB Link libraries and draws your attention to the special make files supplied to enable you to rebuild dynamically-loadable drivers. It is divided as follows:

Library Names

DB Link Libraries provides the names of DB Link libraries. These names have been stripped of their suffix. The suffix depends on the operating system and compilation mode. It can be one of:

  • .a

  • .so

  • .sl

  • .lib

  • .dll

DB Link Libraries

RDBMS

UNIX® Name

Windows® Name

DB Link driver manager

libdbkernel

dbkernel

Static Load Mode

libdblnkst

dblnkst

Dynamic load mode

libdblnkdyn

dblnkdyn

Dynamically loadable driver manager

libdblinkdm

dblinkdm

DB2

libdbdb2

dbdb2

DB2

libdbdb29x

dbdb29x

Informix

libdbinf9

dbinf9

Oracle MySQL

libdbmysql

dbmysql

ODBC

dbodbc

OLE-DB (for Microsoft SQL Server)

dboledb

Oracle v10 to v12

libdbora

dbora

Sybase

libctsyb

ctsyb

Note:

The former Microsoft SQL Server library dbmssql is not part of the distribution anymore; use the OLE-DB library instead.

The dynamically loadable driver manager libdblinkdm contains both the driver manager libdbkernel and the dynamic load mode library libdblnkdyn. These two libraries should never be present if the dynamically loadable driver manager is used.

Building Dynamically-Loadable Drivers under UNIX

The libraries relating to the driver manager are dynamically loadable. This is not the case of the drivers libraries which are simple shared libraries, thus they are not fully resolved. If one tries to dynamically load them, the load will fail due to unresolved symbols.

The delivery includes special makefiles to rebuild the dynamically-loadable drivers. These files are located in the shared directory and named Makefile.drv.

For all ports, these files use variables to locate the RDBMS client libraries. These variables follow the UNIX® convention of each RDBMS:

  • DB2DIR for DB2

  • INFORMIXDIR for Informix

  • MYSQL_HOME for Oracle MySQL

  • ORACLE_HOME for Oracle

  • SYBASE for Sybase

The object files needed to rebuild the drivers will be retrieved from the static version of the libraries. Once the dynamically loadable driver build is finished, the files are erased.

The vendor client libraries and location are set in the value of RDBMS dedicated variables:

  • DB2LIBS for IBM DB2

  • INFLIBS for Informix

  • MYSQLLIBS for Oracle MySQL

  • ORALIBS for Oracle

  • SYBLIBS for Sybase

For the AIX port, the driver build process uses a special script called makeC++SharedLib, which is part of the compiler distribution.

To build the drivers, the client libraries must be “sharable” libraries—that is, .so files on UNIX®. The only exception is AIX, under which drivers can be built even from .a library files. If your current version of the client software does not include this type of library, building the drivers is impossible.

Once the above mentioned variables have been verified, and modified if need be, copy or rename the existing shared libraries because the driver build will overwrite them. Then, from the platform shared directory, simply use the command: make -f Makefile.drv <driver> where driver is the name of the library as shown in the table of the preceding section. Here is the sequence to build the dynamically loadable driver for Oracle on a Red Hat 64bits platform:

$cd $ILDHOME/lib/x64_rhel5.0_4.1/shared

$mv libdbora.so libdbora_orig.so

$echo $ORACLE_HOME

$ ...

$make -f Makefile.drv libdbora.so

Warning: Do not mix RDBMS-specific files for one version with client libraries for another; even though the drivers building process may succeed, the runtime behavior is unpredictable and usually results in a memory fault.