【发布时间】:2018-02-12 18:26:43
【问题描述】:
我们在周末从 oracle 11 迁移到 oracle 12c。 我的应用程序开始崩溃并出现以下堆栈跟踪:
+++INFO+++20170904_13:21:10 Application.main - Starting up...
+++ERROR+++20170904_13:21:12 Application.main - AuditTrailException at AuditTrailDatabase.<init>(AuditTrailDatabase.java:671) caused by SQLException(ORA-28040: No matching authentication protocol
) at DatabaseError.throwSqlException(DatabaseError.java:112)
com.ac.audit.trail.AuditTrailException
at com.ac.audit.trail.database.AuditTrailDatabase.<init>(AuditTrailDatabase.java:671)
at com.ac.audit.trail.Application.main(Application.java:154)
Caused by: com.ac.jdbc.JDBCInterfaceException: Error connecting to the database
at com.ac.jdbc.JDBCInterface.getConnection(JDBCInterface.java:194)
at com.ac.audit.trail.database.AuditTrailDatabase.<init>(AuditTrailDatabase.java:179)
... 1 more
Caused by: java.sql.SQLException: ORA-28040: No matching authentication protocol
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOsesskey(T4CTTIoauthenticate.java:288)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:357)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:221)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:157)
at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:94)
at oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1529)
at oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:464)
at oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:333)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:404)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:189)
at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:165)
at com.ac.jdbc.JDBCInterface.getConnection(JDBCInterface.java:182)
... 2 more
我的同事建议将以下参数放在 sqlnet.ora 文件中
sqlnet.allowed_logon_version_server=8
我没有 sqlnet.ora,并在我的 $ORACLE_HOME/network/admin 中创建了一个文件
它似乎仍然不起作用。
我知道这是一种解决方法,但不是长期修复。我在这里错过了什么?
【问题讨论】:
-
正如这个潜在的副本所说:升级你的 JDBC 驱动程序:ORA-28040: No matching authentication protocol exception
-
您是否在进行更改后重新启动了侦听器?你确定你修改了正确的 Oracle 主目录中的文件吗?例如,如果您使用 ASM,则侦听器可能会用完网格基础架构主目录,而不是 RDBMS 主目录。如果这仍然不起作用,请尝试重新启动数据库。 (我知道这听起来很荒谬,但是一些像横幅这样的 sqlnet 参数需要重新启动数据库。)
标签: java oracle oracle11g database-migration oracle12c