How to enable JDBC-ODBC bridge for Java 8?

Java 8 has removed the JDBC-ODBC bridge, which means that the Microsoft ODBC drivers no longer work, which are required for scanning excel and csv files with the Database Scanner in migration-center.

Starting from version 3.7 of migration-center, Java 8 is the minimum version required. As a work around, you can extract the JDBC-ODBC bridge from Java 7 and use it with your Java 8.

Follow the steps below to add the JDBC-ODBC bridge from a Java 7 installation to your migration-center. 

1. Download a JDK 7 or JRE 7. 
2. Goto JRE\lib folder and find the rt.jar
3. Unzip it (if you have 7zip installed) or you can rename it to and unzip it.
4. Extract the sun\jdbc and sun\security\action folders out while maintaining the same folder structure: 

5. Move the sun folder in the \bin of the Java 7 and open a CMD window. Run the command:
     jar -cvf jdbc.jar sun

6. The above command will create a file named jdbc.jar
7. Copy jdbc.jar to your ...\lib\mc-database-adaptor folder of the migration-center Jobserver
8. Copy jdbcodbc.dll from JRE\bin of your JRE 7 installation to the ...\lib\mc-database-adaptor folder as well

9. Open the jdbc.conf file from the Jobserver folder and un-comment and edit the last line to look like this:

10. Restart your jobserver

Common errors and how to avoid them:

1. If you're using 64-bit Java 8, make sure that you create Java 7 jar file using Java 7 64-bit.  If you're using 32-bit Java 8, make sure that you create Java 7 jar file using Java 7 32-bit.

2. Make sure that your java.exe is the one you want to run. Often there are more than one java executables on your machine. They may be different version or different bits (32 vs. 64). Type java -version to confirm the java runtime. It would be the best if you have a new machine and install Java 8 SDK on the machine to test. Create your Java 7 jar file on a different machine and copy over. 

3. "Path not found" issue. This can be simply solved by setting the classpath. You need to set the classpath something like this:
classpath=.;[file path to your jar file, for example, C:\JDK8\lib\jdbc.jar]; [All the other existing classpath]

You must have ".;" at the beginning of your classpath because otherwise, you may get "Could not find or load main class" error. 

Remember, after you set your classpath, double check it on the console to make sure that it is set correctly. On Windows, you need to close and reopen a new cmd window if you set it in the system environment setting.  



Have more questions? Submit a request


Please sign in to leave a comment.