出现间歇性错误 java.sql.SQLException:ORA-01005:给出的密码为空;登录被拒绝问题
Getting intermittent error java.sql.SQLException: ORA-01005: null password given; logon denied issue
我正在使用 Hikari 创建数据库连接池,它会在应用程序启动时成功连接并创建连接池。应用程序也可以正常工作,但我会间歇性地收到 ORA-01005: null password given;登录被拒绝问题
下面是一些细节
数据库 ->
- 名称:甲骨文
- 版本:Oracle Database 19c 企业版版本 19.0.0.0.0 - 生产
专业:19
未成年人:0
Driver ->
- 名称:Oracle JDBC driver
- 版本:11.2.0.3.0
专业:11
未成年人:2
这就是我创建数据源的方式
将密码作为字符串变量传递。 (不为空且不为空)
@Bean(name = "testDataSource")
@ConfigurationProperties(prefix = "ccb.test.datasource")
public DataSource dataSourceAPAC() {
logger.info("Attempting to Initialize TEST datasource");
return DataSourceBuilder.create().password("*******").build();
}
错误日志
*java.sql.SQLException: ORA-01005: null password given; logon denied
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.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:445)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:380)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:760)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:401)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)*
此问题已通过将 Oracle JDBC 驱动程序升级到 12.1.0.1 版本得到解决。
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
</dependency>
我正在使用 Hikari 创建数据库连接池,它会在应用程序启动时成功连接并创建连接池。应用程序也可以正常工作,但我会间歇性地收到 ORA-01005: null password given;登录被拒绝问题
下面是一些细节
数据库 ->
- 名称:甲骨文
- 版本:Oracle Database 19c 企业版版本 19.0.0.0.0 - 生产 专业:19 未成年人:0
Driver ->
- 名称:Oracle JDBC driver
- 版本:11.2.0.3.0 专业:11 未成年人:2
这就是我创建数据源的方式
将密码作为字符串变量传递。 (不为空且不为空)
@Bean(name = "testDataSource")
@ConfigurationProperties(prefix = "ccb.test.datasource")
public DataSource dataSourceAPAC() {
logger.info("Attempting to Initialize TEST datasource");
return DataSourceBuilder.create().password("*******").build();
}
错误日志
*java.sql.SQLException: ORA-01005: null password given; logon denied
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.T4CTTIoauthenticate.processError(T4CTTIoauthenticate.java:445)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:380)
at oracle.jdbc.driver.T4CTTIoauthenticate.doOAUTH(T4CTTIoauthenticate.java:760)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:401)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:546)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:236)*
此问题已通过将 Oracle JDBC 驱动程序升级到 12.1.0.1 版本得到解决。
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.1</version>
</dependency>