FAN callouts are server-side executables that Oracle RAC executes immediately when high availability events occur. You can use FAN callouts to automate activities when events occur in a cluster configuration, such as:
Opening fault tracking tickets
Sending messages to pagers
Sending e-mail
Starting and stopping server-side applications
Maintaining an uptime log by logging each event as it occurs
Relocating low-priority services when high priority services come online
To use FAN callouts, place an executable in the Grid_home
/racg/usrco
directory on every node that runs Oracle Clusterware. The executable must be able to run standalone when called, with optional arguments, from another program. The following is an example of the Grid_home
/racg/usrco/callout.sh
callout:
#! /bin/bash
FAN_LOGFILE= [your_path_name]/admin/log/'hostname'_uptime'.log
echo $* "reported="'date' >> $FAN_LOGFILE &
The previous example produces output similar to the following:
NODE VERSION=1.0 host=sun880-2 incarn=23 status=nodedown reason=public_nw_down timestamp=08-Oct-2012 04:02:14 timezone=-08:00 reported=Fri Oct 8 04:02:14 PDT 2012
The contents of a FAN event record matches the current session of the user logged on to the database, as shown in Table 5-3. The user environment (USERENV
) information is also available using OCI connection handle and descriptor attributes (using OCIAttrGet()
). Use this information to take actions on sessions that match the FAN event data.
See Also:
Table 5-2 for information about the callout and event details
Oracle Call Interface Programmer's Guide for more information about connection handle and descriptor attributes
In general, events are only posted to user callouts on the node from which the event originated. For example, if the database on node1
goes down, then the callout is posted to node1
, only. The only exceptions to this are node down and VIP down events—these events are posted to all nodes, regardless of from where they originated.