ORA-29548: системный класс Java сообщил: не удалось идентифицировать выпуск, указанный в classes.bin
Проблема: при моделировании распределенных транзакций с использованием Java и Oracle XA при запуске новой транзакции (xa.start) возникает исключение "ORA-29548: системный класс Java сообщил: не удалось идентифицировать выпуск, указанный в classes.bin"
Первоначальный анализ: проверил версии системы JDK и версию JDK в Oracle. Есть несоответствие.
System JDK (Java -version): 1.6.0_31
Oracle JDK (DBMS_JAVA.GET_JDK_VERSION()): 1.6.0_37
Является ли разница в JDK причиной ошибки "не удалось идентифицировать выпуск, указанный в classes.bin"? Есть ли другие потенциальные случаи, которые могут вызвать это?
2 ответа
Если вы применили к вашей базе данных недавний патч PSU или java, убедитесь, что вы запустили @postinstall.sql. Например, 20406220 имеет postinstall.sql в каталоге Oracle_home/sqlpatch/20406220.
На самом деле, я думаю, у вас есть разработчик, который сделал сборку с 1.7
(или же 1.8
) и не установил уровень соответствия 1.6
, Я говорю это потому, что ваша ошибка на самом деле связана с JRE, а соответствующая часть исключения - "системный класс Java сообщил: не удалось идентифицировать выпуск"