Search code examples
javaoraclejava-17oracle19coracle-aq

Large numbers of warnings generated by suspected JDBC driver issue using Oracle 19c


Note: Oracle has now released a fix for this issue. See in comments below.

Overview

We are getting warnings in our database logs that seem to be caused by the following statements:

1) BEGIN  :1  := sys.dbms_aqjms.getDBCompatMajorVersion;  :2  := sys.dbms_aqjms.getDBCompatMinorVersion;  END;

and

2) BEGIN :1  := sys.dbms_aqjms.getMaxIdentifierLength; END;

These statements are not being issued by our code but instead by libraries that we are using.

These libraries are:

  • Oracle AQ: com.oracle.database.messaging:aqapi-jakarta:23.2.1.0 JDBC

  • JDBC driver: com.oracle.database.jdbc:ojdbc11:21.9.0.0

Our Java software is running on Java version 17 against an Oracle 19c Database.

The messages

Almost 3 million messages are created which is likely to be a performance issue. They contain the following:

Application: JDBC Thin Client Action
WARNING: too many parse errors, count=2974461 SQL hash=0x510bc69c
PARSE ERROR: ospid=6269, error=6550 for statement:

Are there any known compatibility problems between the JDBC driver com.oracle.database.jdbc:ojdbc11:21.9.0.0 and Oracle 19c?

Anything else that could be causing this? How do we go about resolving it?


Solution

  • There is definitely compatibility issues. Since the mentioned procedures are not available in 19c.

    • sys.dbms_aqjms.getDBCompatMajorVersion
    • sys.dbms_aqjms.getDBCompatMinorVersion
    • sys.dbms_aqjms.getMaxIdentifierLength

    Please find the screenshot below

    enter image description here

    Edit1:- Also to add these procedures are available in 23C.Hence the libraries you mentioned are compatible with 23C.

    Resolution:-You can either upgrade the database to 23c or use libraries compatible with 19c.