Menu
Simba Technologies
Simba Technologies

SimbaEngine X SDK 10.1.3
Developing Drivers for Data Stores Without SQL

Packaging Your Driver

This section explains which files need to be included with your custom driver package, and what configuration steps must be performed on the customer machine in order for customers to install and use your custom driver.

The requirements for local drivers are included in this section. For client-server drivers, see the SimbaClientServer User Guide at http://www.simba.com/resources/sdk/documentation/.

C++ On Windows

This section explains how to package drivers written in C++ and built on Windows platforms.

  1. Include the driver DLL and any additional DLLs that you added.
  2. Include the ICU DLLs from [INSTALL_DIRECTORY]\DataAccessComponents\ThirdParty\icu\53.1.x\<>\<CONFIGURATION>\lib\.
    • For 32-bit drivers, include sbicudt53_32.dll, sbicuin53_32.dll, and sbicuuc53_32.dll.
    • Or, for 64-bit drivers, include sbicudt53_64.dll, sbicuin53_64.dll, and sbicuuc53_64.dll.
  3. Include the error message files from [INSTALL_DIRECTORY]\DataAccessComponents\ErrorMessages. Include the subdirectories for the languages that you want your driver to support.
  4. Create the following key in the Windows registry:
    • For 32-bit drivers on 32-bit machines, or 64-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\Simba\Quickstart\Driver, replacing Simba with your company name and Quickstart with your driver name.
    • For 32-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Simba\Quickstart\Driver, replacing Simba with your company name and Quickstart with your driver name.

    Add the following entries:

    • DriverManagerEncoding = UTF-16
    • ErrorMessagesPath = <Path to the parent directory where error message files are located>
    • (OPTIONAL) LogLevel = 0
    • (OPTIONAL) LogPath = <Path to directory to store the log files>
  5. Create the following key in the Windows registry:
    • For 32-bit drivers on 32-bit machines, or 64-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers.
    • For 32-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers.

    Add the following entry:

    • <DRIVER_NAME>=Installed
  6. Create the following key in the Windows registry:
    • For 32-bit drivers on 32-bit machines, or 64-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\QuickstartDSIIDriver, replacing QuickstartDSIIDriver with the name of your driver.
    • For 32-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\QuickstartDSIIDrivers, replacing QuickstartDSIIDriver with the name of your driver.

    Add the following entries, ensuring you include the correct path for either the 32-bit or the 64-bit driver:

    • Driver=<Full path to the driver DLL>
    • Description=<Brief description of your driver>
    • Setup=<Full path to the 32-bit driver configuration dialog DLL>

For an explanation of the registry keys that are created for the sample drivers, see Examine the Windows Registry and Update the Windows Registry in the 5 Day Guides at http://www.simba.com/resources/sdk/documentation/.

C++ On Linux, Unix, and macOS

This section explains how to package drivers written in C++ and built on Linux, Unix and macOS platforms.

  1. Include the driver shared object and any additional shared objects that you added.
  2. Include all ICU shared objects from [INSTALL_DIRECTORY]/DataAccessComponents/ThirdParty/icu/53.1.x/<>/<CONFIGURATION>/lib.
  3. Include the error message files from [INSTALL_DIRECTORY]/DataAccessComponents/ErrorMessages. Include the subdirectories for the languages that you want your driver to support.
  4. Add the following entries to your driver's .ini configuration file.
    • DriverManagerEncoding=UTF-16 (or UTF-32, depending on the driver manager being used)
    • ErrorMessagesPath=<Path to the directory where error message file is located>
    • ODBCInstLib=<Full path to the Driver Manager’s ODBCInst library>
    • (OPTIONAL) LogLevel=0
    • (OPTIONAL) LogPath=<Path to directory to store the log files>
  5. Add the following entries to .odbcinst.ini:
    • <DRIVER_NAME>=Installed
    • [<DRIVER_NAME>]
    • Driver=<Full path to the driver shared library>
    • Description=<Brief description of your driver>

For an explanation of the configuration files that are created for the sample drivers, see Configure the Driver and Data Source and Configure Your Custom Driver and Data Source in the 5 Day Guides at http://www.simba.com/resources/sdk/documentation/.

C# On Windows

This section explains how to package drivers written in C#.

Packaging Drivers Built With Simba.NET

This section explains how to package drivers written in C# with the Simba.NET component.

  1. Include the C# driver DLL.
  2. Include Simba.DotNetDSI.dll and Simba.ADO.Net.dll from [INSTALL_DIRECTORY]\Bin\Win.
  3. Using gacutil.exe, install the following DLLs to the Global Assembly Cache (GAC) on the target machine:
    • Simba.DotNetDSI.dll
    • Simba.ADO.Net.dll
    • Driver’s C# DLL

    The DLLs can be installed using the following commands:

    • gacutil.exe /i Simba.DotNetDSI.dll
    • gacutil.exe /i Simba.ADO.Net.dll
    • gacutil.exe /i YourDriver.dll

    If you need to reinstall a DLL to the GAC, you have to uninstall it first using the following command:

    • gacutil.exe /u Simba.DotNetDSI

      Note:

      The .dll extension is removed from the name when uninstalling a DLL from GAC.

Packaging Drivers Built with CLI DSI and Simba SQLEngine

This section explains how to package drivers written in C# with the CLI DSI component. The Simba SQLEngine component can optionally be included.

  1. Include the requirements listed in the section C++ On Windows
  2. Include driver’s CLIDSI DLL in addition to the C# driver DLL.
  3. Include Simba.DotNetDSI.dll and Simba.DotNetDSIExt.dll from [INSTALL_DIRECTORY]\Bin\Win.
  4. In the registry, ensure the Driver entry is the full path to the C++ CLIDSI DLL, not to the C# DLL.
  5. Using gacutil.exe, install the following DLLs to the Global Assembly Cache (GAC) on the target machine:
    • Simba.DotNetDSI.dll
    • Simba.DotNetDSIExt.dll
    • Driver’s C# DLL

    The DLLs can be installed using the following commands:

    • gacutil.exe /i Simba.DotNetDSI.dll
    • gacutil.exe /i Simba.DotNetDSIExt.dll
    • gacutil.exe /i YourDriver.dll

    If you need to reinstall a DLL to the GAC, you have to uninstall it first using the following command:

    • gacutil.exe /u Simba.DotNetDSI (NOTE: the .dll extension is removed from the name when uninstalling a DLL from GAC)

Java Packaging on Windows

This section explains how to package drivers written in Java and built on the Windows platform.

Packaging JDBC Drivers Built With SimbaJDBC

This section explains how to package Java drivers built with the SimbaJDBC component.

  1. Include the SimbaJDBC JAR file located at [INSTALL_DIRECTORY]\DataAccessComponents\Lib
  2. Include the Java driver’s JAR file.
  3. If your driver uses the Java Simba SQLEngine, include the SimbaSQLEngine JAR file located at [INSTALL_DIRECTORY]\DataAccessComponents\Lib.

Packaging Java ODBC Drivers Built With JNI DSI and/or SQLEngine

This section explains how to package JDBC drivers built with the SimbaJDBC component.

  1. Include the requirements listed in the section C++ On Windows
  2. Include the driver’s JNIDSI DLL and the Java driver JAR file.
  3. In the registry, ensure the Driver entry is the full path to the C++ CLIDSI DLL, not the driver’s Java JAR file.
  4. Create the following key in the Windows registry:
    • For 32-bit drivers on 32-bit machines, or 64-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\Simba\Quickstart\Driver, replacing Simba with your company name and Quickstart with your driver name.
    • For 32-bit drivers on 64-bit machines, create the key HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Simba\Quickstart\Driver, replacing Simba with your company name and Quickstart with your driver name.

    Add the following entry. If multiple options exist, separate them by a “|” character. For example:
    -Djava.class.path=<full path>\JavaQuickstart.jar>|-Xdebug:

    • JNIConfig=<Java Virtual Machine (JVM) Configuration options>
  5. If -Djava.class.path is not specified in the JNIConfig, add or modify the CLASSPATH environment variable:
    • CLASSPATH=<Full path of the driver’s JAR file>

    For example: <full path>\JavaQuickstart.jar

  6. Add or modify the PATH environment variable to include the location of the Java executable, as well as the 64-bit or 32-bit Java Virtual machine (Depending on the bitness of JNIDSI driver).

    Note:

    For a Java Runtime Environment (JRE), the location of the JVM on 32-bit Windows is usually in <JRE Path>\bin\client while on 64-bit it is usually in <JRE Path>\bin\server.

Java Packaging On Linux, Unix, and macOS

This section explains how to package drivers written in Java and built on Linux, Unix, or macOS platforms.

Packaging JDBC Drivers Built With SimbaJDBC

This section explains how to package Java drivers built with the SimbaJDBC component.

  1. Include the SimbaJDBC JAR file located at [INSTALL_DIRECTORY]\DataAccessComponents\Lib.
  2. Include the Java driver’s JAR file.
  3. If your driver uses the Java Simba SQLEngine, include the SimbaSQLEngine JAR file located at [INSTALL_DIRECTORY]/DataAccessComponents/Lib.

Packaging Java ODBC Drivers Built With JNI DSI and/or SQLEngine

This section explains how to package Java drivers written in Java and built with the SimbaJDBC component.

  1. Include the requirements listed in the section C++ On Linux, Unix, and macOS.
  2. Include the driver’s JNIDSI library and the Java driver JAR file.
  3. In the .ini file, ensure the Driver entry is the full path to the C++ CLIDSI DLL, not the driver’s Java JAR file.
  4. Add the following entry to your driver's .ini configuration file. If multiple options, separate them with a “|” character.
    • JNIConfig=<Java Virtual Machine (JVM) Configuration options>
    • For example, -Djava.class.path=<full path>/JavaQuickstart.jar>|-Xdebug

  5. If -Djava.class.path is not specified in the JNIConfig, add or modify the CLASSPATH environment variable:
    • CLASSPATH=<Full path of the driver’s JAR file>

    For example: <full path>\JavaQuickstart.jar

  6. Add or modify the LD_LIBRARY_PATH (or equivalent) environment variable to include the location of the Java executable, as well as the 64-bit or 32-bit Java Virtual machine, depending on the bitness of JNIDSI driver.
  7. For a Java Runtime Environment (JRE), the location of the JVM on 32-bit Unix is usually in <JRE Path>/lib/<architecture>/client, where architecture is amd64 on 64-bit linux, or i386 on 32-bit linux, or other values on other platforms.

    Note:

    The library path environment variable has the following values on the different platforms:

    • LD_LIBRARY_PATH on most Linux platforms
    • SHLIB_PATH on HP/UX
    • LIBPATH on AIX
    • DYLD_LIBRARY_PATH on macOS

 

Related Links

Including Error Message Files