ORA-12631 when trying to Connect using Kerberos Authentication from Concurrent Clients using Forwardable Credentials
(Doc ID 2691786.1)
Last updated on AUGUST 09, 2023
Applies to:
JDBC - Version 18.0.0.0.0 and laterInformation in this document applies to any platform.
Symptoms
Oracle JDBC connections to the database using Kerberos5 authentication intermittently fail with the following exception:
java.sql.SQLException: Oracle Error ORA-12631
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:858)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:793)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:57)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:747)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:562)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: oracle.net.ns.NetException: Oracle Error ORA-12631
at oracle.net.ano.Ano.checkForAnoNegotiationFailure(Unknown Source)
at oracle.jdbc.driver.T4C8TTIpro.receive(T4C8TTIpro.java:139)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1627)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:592)
... 12 more
Output in Database alert log:
---------------------------------------
Analysis
-------------
A test application establishes 25 connections, with the configured delay between each connection request.
Every connection is used to fire a query at regular interval of 10 seconds and continues to do so for 1 minute. Post this, the test for this connection is marked as successful.
When tested with a delay of 5 seconds and 10 seconds - all connections were successful.
And, for a delay of 2 seconds, multiple attempts were made out of which one attempt reported the exception.
Additional details
------------------------
- SQL*Plus connectivity works fine.
sqlplus /@ is the command used to connect to oracle after 'okinit ' is initiated.
- JDBC URL: jdbc:oracle:thin:@//<host>:<port>/<service>
- tnsnames.ora:
<TNS ALIAS> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = <port>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <service>)
)
)
Environment
-------------------
Oracle JDBC 18.3 (ojdbc8.jar)
Java 8
Oracle database 19.3.0.0.0.
Cause
To view full details, sign in with your My Oracle Support account. |
|
Don't have a My Oracle Support account? Click to get started! |
In this Document
Symptoms |
Cause |
Solution |
References |