应用支持包后,您可能会发现 JDBC 应用程序停止工作,并收到类似下面的消息:
sajdbc4.jar 版本与共享对象版本不匹配。 |
返回此消息的原因是在应用支持包后,运行了 Interactive SQL、Sybase Central、快速启动程序或您自己的 JDBC 应用程序。在这种情况下,Java VM 将锁定其装载的任何 DLL 或共享对象,但不锁定 JAR 文件。因此,如果应用支持包,通常会更新 sajdbc4 和 jodbc4 JAR 文件,而不会更新随附的 dbjdbc16 和/或 dbjodbc16 DLL 或共享对象。JDBC 应用程序重新启动后,JDBC JAR 文件与随附的 DLL 或共享对象版本不匹配,因而返回类似上面的消息。
先尝试关闭所有基于 JDBC 的应用程序,然后重新应用支持包。如果重新应用支持包不起作用,请尝试通过以下方法解决问题:
检查支持包安装程序是否已正确更新 DLL 和共享对象
在 Windows 上,检查在应用支持包时是否正确更新了 dbjdbc16.dll 和 dbjodbc16.dll 文件。
在 Linux/Unix 上,检查在应用支持包时是否正确更新了 libdbjdbc16.so.1 和 libdbjodbc16.so.1 共享对象。
在 Mac OS X 上,检查在应用支持包时是否正确更新了 libdbjdbc16.dylib 和 libdbjodbc16.dylib 共享对象。
系统上安装的 DLL 或共享对象可能有 32 位和 64 位两种版本。检查 DLL 或共享对象时,必须检查是否与 JAVA VM 位数相匹配,而不是检查是否与 SQL Anywhere 服务器的位数相匹配。
检查系统中没有 DLL 和共享对象的多个副本 如果 DLL 或共享对象已正确更新,请确保 DLL 或共享对象不存在位数相同的多个副本。如果为了规避不允许在多个类装载程序中装载 DLL 和共享对象的 Java 限制而将 DLL 或共享对象复制到 Java VM 的扩展文件夹中,则会发生这种情况。
检查是否已正确更新 JAR 文件。 如果 DLL 或共享对象已正确更新,并且系统中不存在多个副本,则请确保已正确更新各种 JAR 文件。要检查每个 JAR 文件,请运行以下命令,并确保 JAR 文件所报告的 SQL Anywhere 版本和内部版本号与所安装支持包的 SQL Anywhere 版本和内部版本号相匹配。
要检查 sajdbc4.jar,请运行以下命令(将 path 替换为 JAR 文件的路径):
java -cp path\sajdbc4.jar sybase.jdbc4.sqlanywhere.IBuildNum |
要检查 jodbc4.jar,请运行以下命令(将 path 替换为 JAR 文件的路径):
java -cp path\jodbc4.jar ianywhere.ml.jdbcodbc.jdbc4.IBuildNum |
确定哪个 JAR 文件、DLL 或共享对象与支持包的内部版本号不匹配后,请确保该文件未被应用程序锁定,然后重新应用支持包。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2013, SAP 股份公司或其关联公司. - SAP Sybase SQL Anywhere 16.0 |