Discussion
Pegasystems Inc.
IT
Last activity: 29 Jan 2019 3:55 EST
attempt to configure ONS in FanManager failed with oracle.ons.NoServersAvailable: Subscription time out
The Oracle FAN functionality provides enhanced high availability allowing very fast detection of failures (see Oracle Administration and Deployment Guide, § 5.3.1 Overview of Oracle Integrated Clients and FAN).
However, when the FAN configuration is not complete or not available for any reason, it may happen to encounter an exception similar to:
[sql] SEVERE: attempt to configure ONS in FanManager failed with oracle.ons.NoServersAvailable: Subscription time out [echo] java.lang.IllegalArgumentException: ONS configuration failed
executing command line utilities as in Pega Marketing installation (see Pega Marketing Installation Guide, Running the Pega Marketing Setup Utility) or when installing bundles through prpcUtils (see Pega 8.1 Help - prpcUtils tool).
The Oracle FAN functionality can be disabled at JDBC Driver level by setting property oracle.jdbc.fanEnabled to false (see Oracle JDBC Developer's Guide, § 29.3 Installation and Configuration of Oracle JDBC Driver for FAN Events Support). The property is available as both a system property and a connection property.
As you may know, those command line utilities use Apache Ant to perform the required process. By setting the following environment variable, a system property can be passed to Ant (example for Linux):
export ANT_OPTS="-Doracle.jdbc.fanEnabled=false"
An alternate method can be passing the same property as a custom connection property in prpcUtils.properties:
jdbc.custom.connection.properties=oracle.jdbc.fanEnabled=false;
The Oracle WebLogic Server Administration Console allows to disable the FAN functionality through the Data Source Settings:
-
Your friendly neighborhood Technical Architect