We have an oracle schema in ora12c Db. It is configured to have 7 days of password expiry warning. We have reached the period. But the password not yet expired. We are using Oracle OCI driver for connectivity using a Vertx application which is using Java as language. Whenever connecting to the schema it gives a warning as bellow.
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]
It is ok. But subsequent queries with obtained connection throws / by zero error which is strange behavior.
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]
Is there a way to overcome this issue without changing the driver to thin?
Have you tried clearWarnings()? connection.clearWarnings(): https://docs.oracle.com/javase/7/docs/api/java/sql/Connection.html#clearWarnings()