Ensure JDBC applications are not running when applying an EBF

After applying an EBF, you may discover that your JDBC applications stop working, and you receive a message similar to the following:

The sajdbc.jar build does not match the shared object build.

This message can be returned because either Interactive SQL, Sybase Central, the fast launchers, or your own JDBC applications were running when the EBF was applied. In this case the Java VM locks any DLLs or shared objects that are loaded by it, but does not lock the JAR files. As a result, applying the EBF often updates the sajdbc, sajdbc4, jodbc, and/or jaodbc4 JAR files, but not the accompanying dbjdbc and/or dbjodbc DLL or shared object. When the JDBC application is restarted, the JDBC JAR file does not match the accompanying DLL or shared object, and the above message is returned.

First try shutting down all JDBC-based applications and then reapplying the EBF. If reapplying the EBF does not work, try resolving the problem through the following methods:

  • Check that the DLLs and shared objects were properly updated by the EBF installer  

    • On Windows, check that the dbjdbc.dll and dbjodbc.dll files were properly updated when applying the EBF.

    • On Unix, check that the libdbjdbc.so.1 and libdbjodbc.so.1 shared objects were properly updated when applying the EBF.

    Note

    When checking the DLLs and shared objects, you must check those that match the bitness of the JAVA VM, not the bitness of the SQL Anywhere server.

  • Check that there are not multiple copies of the DLLs and shared objects on your system   If the DLLs and shared objects have been properly updated, make sure you do not have multiple copies of the DLLs or shared objects. This may occur if you have copied the DLLs or shared objects to the extensions folders of the Java VM to bypass the Java restriction that does not allow DLLs and shared objects to be loaded within multiple class loaders.

  • Check that the JAR files were properly updated   If your DLLs and shared objects were properly updated, and there are not multiple copies on your system, then make sure that the various JAR files were properly updated. To check each JAR file, execute the following commands, and ensure that the SQL Anywhere version and build number reported by the JAR file matches the SQL Anywhere version and build number of the EBF you installed.

    To check sadbc.jar, run the following command:

    java -cp sajdbc.jar sybase.jdbc.sqlanywhere.IBuildNum

    To check sajdbc4.jar, run the following command:

    java -cp sajdbc4.jar sybase.jdbc4.sqlanywhere.IBuildNum

    To check jodbc.jar, run the following command:

    java -cp jodbc.jar ianywhere.ml.jdbcodbc.jdbc3.IBuildNum

    To check jodbc4.jar, run the following command:

    java -cp jodbc4.jar ianywhere.ml.jdbcodbc.jdbc4.IBuildNum

    Once you determine which JAR file, DLL, or shared object does not match the EBF build number, make sure that the file is not locked by an application, and then reapply the EBF.