ORA-00932: несовместимые типы данных: ожидаемый SYS.AQ$_JMS_TEXT_MESSAGE получил SYS.AQ$_JMS_TEXT_MESSAGE

С более новой версией Oracle DB (12.2.0.1) мы начинаем получать ORA-00932 для кода, который хорошо работает со старым сервером БД. Более того, драйвер сообщает о странной детали исключения:

ORA-00932: несовместимые типы данных: ожидаемый SYS.AQ$_JMS_TEXT_MESSAGE получил SYS.AQ$_JMS_TEXT_MESSAGE

вы можете видеть, что ожидаемые и полученные имена типов совпадают.

Caused by: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-00932: inconsistent datatypes: expected SYS.AQ$_JMS_TEXT_MESSAGE got SYS.AQ$_JMS_TEXT_MESSAGE
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382)
        at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:600)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
        at oracle.jdbc.driver.T4Caqe.doOAQEQ(T4Caqe.java:355)
        at oracle.jdbc.driver.T4CConnection.doEnqueue(T4CConnection.java:3938)
        at oracle.jdbc.driver.PhysicalConnection.enqueue(PhysicalConnection.java:10076)
        at oracle.jms.AQjmsProducer.jdbcEnqueue(AQjmsProducer.java:1096)
        ... 13 more

Проблема возникает из-за автономного приложения Java с использованием следующих библиотек драйверов AQ:

aqapi.jar;javax.jms_1.1.4.jar;jta-1.1.jar

Используемая версия драйвера ojdbc:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_30-b03 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 11.2.0.3.0
Repository-Id: JAVAVM_11.2.0.3.0_LINUX_110823
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0
Main-Class: oracle.jdbc.OracleDriver
sealed: true

person Marek-A-    schedule 07.11.2018    source источник
comment
тот же тип задачи указан в поддержке ORA: oracle.com/webfolder/community/ oracle_database/4154251.html и support.oracle.com/knowledge/Middleware/ 2450300_1.html, но без ответа или закрытого раздела   -  person Marek-A-    schedule 07.11.2018


Ответы (1)


Когда мы начали использовать ту же версию драйвера jdbc, что и сервер Oracle DB:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Implementation-Title: JDBC
Implementation-Version: 12.2.0.1.0
sealed: true
Repository-Id: JAVAVM_12.2.0.1.0_LINUX.X64_161213
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Created-By: 25.91-b14 (Oracle Corporation)
Specification-Version: 4.0
Implementation-Vendor: Oracle Corporation
Main-Class: oracle.jdbc.OracleDriver

Драйвер AQ JMS начинает работать хорошо. Я не могу найти примечание к документации Oracle о том, что драйвер jdbc 11.2 несовместим с сервером БД ORA 12.2, даже не для реализации AQ JMS (aqapi.jar).

person Marek-A-    schedule 12.11.2018
comment
oracle.com/technetwork/database/enterprise- edition/ нет подробностей о драйвере Oracle JMS AQ - person Marek-A-; 04.12.2018