java - 升级到 Oracle 12c 后,sqlnet.ora 更改未生效

标签 java oracle oracle11g database-migration oracle12c

我们在周末从 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 中创建了一个文件

它似乎仍然不起作用。

我知道这是一种解决方法,但不是长期解决方案。我在这里缺少什么?

最佳答案

引发此错误的服务具有不同的配置来连接到数据库。它没有从 tnsnames.ora 获取详细信息

它是一个遗留应用程序,我们必须深入挖掘才能实现这一点。

感谢大家的投入。

关于java - 升级到 Oracle 12c 后,sqlnet.ora 更改未生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46038352/

相关文章:

java - 无法在可运行的 jar 中获取图像图标

java - 无法从 Java WebService 连接到 MS Access 数据库

sql - 如何从 Oracle 中获取格式化的 XML

SQL查询可预订房间

sql - 无论 NLS 设置如何,工作日数

java - 如何找到 jni.h?

Java如何将数组值从一种方法传递到另一种方法

java - 在 Generic Generator 原生策略中设置 AllocationSize

sql - ORA-02290 : check constraint violated

sql - 如何使用带有过滤条件where子句的oracle外连接