In order to post questions, answers, or comments, you now need a validated email address. Details on how to validate your address are in the FAQ.

I am going to ask the documentation team to add a trouble shooting note containing the information below. As a result, this "question" is not really a question but rather a preemptive doc note.


Over the past several years, there has been the odd question on the newsgroups where an SQL Anywhere user will find that after applying an EBF, their JDBC applications suddenly stops working and instead they get a message similar to the following when trying to run their JDBC application:

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

This problem usually occurs because the use either had DBISQL, Sybase Central, the fast launchers or their own JDBC application still running when the EBF was applied. The JAVA VM locks any dlls or shared objects that are loaded by it, but it does not lock the jars. As a result, applying the EBF will quite often update the sajdbc, sajdbc4, jodbc and/or jodbc4 jars but not the accompanying dbjdbc and/or dbjodbc dll or shared object. Hence, when the JDBC application is restarted, the jdbc jar will suddenly be out of sync with the accompanying dll or shared object and the above message is therefore returned.

The easiest thing to do at this point is to shut down all JDBC based applications and reapply the EBF. If reapplying the EBF does not resolve the problem, then the following additional trouble shooting information might help.

To trouble shoot the problem, users should start by ensuring that on Windows machines, the dbjdbc?.dll and dbjodbc?.dll files got properly updated by the EBF installer while on UNIX machines, users need to check the libdbjdbc?.so.1 and libdbjodbc?.so.1 shared objects. Note that when checking the various dlls and shared objects, it is important to check the dlls and shared objects that match the bitness of the JAVA VM (not the bitness of the SQL Anwhere server).

If the dlls and shared objects seem to have been properly updated by the EBF installer, then check to make sure you do not have multiple copies of the dlls and shared objects on your system. Quite often users will copy the dlls or shared objects to extensions folders of the JAVA VM in order to avoid the JAVA restriction of not allowing dlls and shared objects to be loaded within multiple class loaders.

If you are sure the dlls and shared objects were properly updated by the EBF installer, and you do not have multiple copies of the dlls and shared objects on your system, then check to make sure the various jar files were properly updated. To check each jar file, execute the following 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 that you installed.

To check sajdbc.jar, execute:

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

To check sajdbc4.jar, execute:

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

To check jodbc.jar, execute:

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

And, to check jodbc4.jar, execute:

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

Once you find out which dll/shared object or jar file is out of sync, ensure that that particular file is not locked by an application or some other mechanism and then reapply the EBF.

asked May 12 '11 at 08:55

Karim%20Khamis's gravatar image

Karim Khamis
5.2k43466

edited May 12 '11 at 09:05

Volker%20Barth's gravatar image

Volker Barth
22.2k220331480


Placeholder.

answered May 12 '11 at 09:16

Karim%20Khamis's gravatar image

Karim Khamis
5.2k43466

I have found that once you find the offending jar files you can delete them and re-apply the ebf with repair selected, otherwise, short of removing and re-installing Sybase, it doesn't do anything. There doesn't appear to be a method of simply "Re-applying the ebf".

answered Jun 24 '13 at 11:41

sziegler's gravatar image

sziegler
161

You may have a look at that FAQ which deals with a similar experience:

What might prevent a JAR file from getting EBF'ed?

(Jun 25 '13 at 05:27) Volker Barth
Your answer
toggle preview

Are you providing an answer to the original question, or making a comment on the question or an answer? If you are making a comment please do not post a new answer. Click "Add new comment" on the question or answer instead. If you are responding to a previous comment, click on the "reply" icon (    ) for that comment.

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link: [text](http://url.com/ "title")
  • image: ![alt text](/path/img.jpg "title")
  • numbered list (indent for sublists):
    1. Foo
    2. Bar
  • bullet list (indent for sublists):
    * Foo
    * Bar
  • to add a line break, add two spaces to where you would like the new line to be.
  • Code blocks should be indented by 4 spaces. SQL code should begin with ":::SQL" on the first line.
  • basic HTML tags are also supported

Tags:

×63
×59
×55
×12

Asked: May 12 '11 at 08:55

Seen: 3,462 times

Last updated: Jun 25 '13 at 05:27

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link: [text](http://url.com/ "title")
  • image: ![alt text](/path/img.jpg "title")
  • numbered list (indent for sublists):
    1. Foo
    2. Bar
  • bullet list (indent for sublists):
    * Foo
    * Bar
  • to add a line break, add two spaces to where you would like the new line to be.
  • Code blocks should be indented by 4 spaces. SQL code should begin with ":::SQL" on the first line.
  • basic HTML tags are also supported