Disabling Fast Application Notifications

To support Fast Application Notifications (FAN), Oracle databases configure GRID (Oracle Grid Infrastructure). GRID is typically associated with (and required by) Oracle RAC databases but can also be used in other configurations. Oracle Autonomous Database-Serverless (ATP-S) does not provide GRID.

When connecting to a database that does not have GRID, the only type of WebLogic Server data source that is supported is the Generic Data Sources. Multi Data Sources and Active GridLink data sources cannot be used because they work with RAC.

WebLogic Server shipped with the Oracle driver. When connecting with this driver to a database that does not have GRID, you will encounter the following exception (however, the 18.3 driver does not have this problem):

oracle.simplefan.impl.FanManager configure
SEVERE: attempt to configure ONS in FanManager failed with oracle.ons.NoServersAvailable: Subscription time out

NOTE: As of June, 2023, Oracle WebLogic Server is no longer supported. The last Critical Patch Updates (CPU) images for WebLogic Server were published in April, 2023.

To correct the problem, you must disable FAN, in one of two places:

  1. Through a system property at the domain, cluster, or server level.

To do this, edit the Domain Custom Resource to set the system property oracle.jdbc.fanEnabled to false as shown in the following example:

    # an (optional) list of environment variable to be set on the servers
    - name: JAVA_OPTIONS
      value: "-Dweblogic.StdoutDebugEnabled=false -Doracle.jdbc.fanEnabled=false"
      value: "-Doracle.jdbc.fanEnabled=false"
  1. Configure the data source connection pool properties.

The following WLST script adds the oracle.jdbc.fanEnabled property, set to false, to an existing data source.

       fmwDb = 'jdbc:oracle:thin:@' + db
       print 'fmwDatabase  ' + fmwDb
       set('DriverName', 'oracle.jdbc.OracleDriver')
       set('URL', fmwDb)
       set('PasswordEncrypted', dbPassword)

       stbUser = dbPrefix + '_STB'
       set('Value', stbUser)
       set('Value', 'false')

After changing the data source connection pool configuration, for the attribute to take effect, make sure to undeploy and redeploy the data source, or restart WebLogic Server.