PostgreSQL supports asynchronous notification via the LISTEN and NOTIFY commands. A backend registers its interest in a particular notification condition with the LISTEN command. All backends that are listening on a particular condition will be notified asynchronously when a NOTIFY of that name is executed by another backend. No additional information is passed from the notifier to the listener. Thus, typically, any actual data that needs to be communicated is transferred through a relation.
    libpq++ applications are notified whenever a 
    connected backend has
    received an asynchronous notification.  However, the communication from
    the backend to the frontend is not asynchronous.  
    The libpq++ application
    must poll the backend to see if there is any pending notification
    information.  After the execution of a command, a frontend may call 
    PgDatabase::Notifies
    to see if any notification data is currently available from the backend. 
    PgDatabase::Notifies
    returns the notification from a list of unhandled notifications from the
    backend. The function returns NULL if there are no pending notifications 
    from the backend.   
    PgDatabase::Notifies
    behaves like the popping of a stack.  Once a notification is returned
    from PgDatabase::Notifies,
    it is considered handled and will be removed from the list of
    notifications.
    
    
       PgDatabase::Notifies
       retrieves pending notifications from the server.
       
PGnotify* PgDatabase::Notifies()
The second sample program gives an example of the use of asynchronous notification.