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.