Oracle Драйвер OCI выдает / с нулевой ошибкой при истечении срока действия пароля - PullRequest
2 голосов
/ 10 июля 2020

У нас есть схема oracle в ora12 c Db. Он настроен на предупреждение об истечении срока действия пароля за 7 дней. Мы подошли к периоду. Но срок действия пароля еще не истек. Мы используем драйвер Oracle OCI для подключения с помощью приложения Vertx, которое использует Java в качестве языка. Всякий раз, когда вы подключаетесь к схеме, он выдает предупреждение, как показано ниже.

java.sql.SQLWarning: ORA-28002: the password will expire within 6 days

at oracle.jdbc.driver.DatabaseError.addSqlWarning(DatabaseError.java:950) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CConnection.checkError(T2CConnection.java:1008) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CConnection.logon(T2CConnection.java:536) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CDriverExtension.getConnection(T2CDriverExtension.java:54) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566) ~[ojdbc7.jar:12.1.0.2.0]
at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:161) ~[c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:161) ~[c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:147) ~[c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:202) [c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138) [c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125) [c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44) [c3p0-0.9.5.2.jar:0.9.5.2]
at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870) [c3p0-0.9.5.2.jar:0.9.5.2]

Это нормально. Но последующие запросы с полученным соединением выдают / с нулевой ошибкой, что является странным поведением.

java.lang.ArithmeticException: / by zero
at oracle.jdbc.driver.OraclePreparedStatement.<init>(OraclePreparedStatement.java:1387) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CPreparedStatement.<init>(T2CPreparedStatement.java:109) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CDriverExtension.allocatePreparedStatement(T2CDriverExtension.java:81) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.prepareStatementInternal(PhysicalConnection.java:2013) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:1960) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CConnection.prepareStatement(T2CConnection.java:57) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.PhysicalConnection.prepareStatement(PhysicalConnection.java:1866) ~[ojdbc7.jar:12.1.0.2.0]
at oracle.jdbc.driver.T2CConnection.prepareStatement(T2CConnection.java:57) ~[ojdbc7.jar:12.1.0.2.0]
at com.mchange.v2.c3p0.impl.NewProxyConnection.prepareStatement(NewProxyConnection.java:567) ~[c3p0-0.9.5.2.jar:0.9.5.2]
at io.vertx.ext.jdbc.impl.actions.JDBCQuery.execute(JDBCQuery.java:43) ~[vertx-jdbc-client-3.7.1.jar:3.7.1]
at io.vertx.ext.jdbc.impl.actions.JDBCQuery.execute(JDBCQuery.java:30) ~[vertx-jdbc-client-3.7.1.jar:3.7.1]
at io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.handle(AbstractJDBCAction.java:58) ~[vertx-jdbc-client-3.7.1.jar:3.7.1]
at io.vertx.ext.jdbc.impl.actions.AbstractJDBCAction.lambda$execute$0(AbstractJDBCAction.java:66) ~[vertx-jdbc-client-3.7.1.jar:3.7.1]
at io.vertx.core.impl.ContextImpl.lambda$executeBlocking$2(ContextImpl.java:272) ~[vertx-core-3.7.1.jar:3.7.1]
at io.vertx.core.impl.TaskQueue.run(TaskQueue.java:76) ~[vertx-core-3.7.1.jar:3.7.1]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_152]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_152]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.34.Final.jar:4.1.34.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_152]

Есть ли способ решить эту проблему, не меняя драйвер на тонкий?

1 Ответ

0 голосов
/ 10 июля 2020

Вы пробовали clearWarnings ()? connection.clearWarnings (): https://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#clearWarnings ()

...