After upgrade from 12.2.1.2.0 to 12.2.1.3.0 - JDBC fails with "ONS configuration failed"
After upgrade from WebLogic 12.2.1.2.0 to WebLogic 12.2.1.3.0 the server throws exception when starting the JDBC resources.
weblogic.application.ModuleException: oracle.ons.NoServersAvailable: Subscription time out
at weblogic.jdbc.module.JDBCModule.prepare(JDBCModule.java:408)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:192)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:187)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
...
Something’s up!
ONS - Oracle Notification System if you will, is used as the transport for Fast Application Notification (FAN) typically used in RAC environments.
select * from v$database;
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
select name, value from v$database_parameter where name = ‘cluster_database’;
cluster_database FALSE
So, we’re surely not connecting to a RAC database.
It turns out this is a bug in the JDBC driver bundled with WebLogic 12.2.1.3.0 and there is a simple workaround for it:
All you need to do is to set the parameter -Doracle.jdbc.fanEnabled=false to JAVA_OPTIONS in setDomainEnv.sh file and restart all the servers in the domain.