问题:在使用 Java 和 Oracle XA 模拟分布式事务期间,启动新事务 (xa.start) 时遇到异常“ORA-29548:报告 Java 系统类:无法识别在 classes.bin 中指定的版本”
初步分析:检查系统JDK的版本以及Oracle中的JDK版本。存在不匹配。
System JDK (Java -version): 1.6.0_31
Oracle JDK (DBMS_JAVA.GET_JDK_VERSION()): 1.6.0_37
JDK 中的差异是否是“无法识别classes.bin中指定的版本”错误的原因?还有其他潜在情况可能导致这种情况吗?
实际上,我认为您的开发人员使用
1.7
(或 1.8
)进行了构建,并且没有将合规级别设置为 1.6
。我这么说是因为你的错误实际上来自JRE,并且异常的相关部分是“Java系统类报告:无法识别版本”
如果您已对数据库应用了最新的 PSU 或 java 补丁,请确保您已运行 @postinstall.sql。例如20406220在Oracle_home/sqlpatch/20406220目录中有一个postinstall.sql。