IPB
>  Man Pages > Unix > Solaris 10 11/06 > Section 5 > notify man page

notify man page

Section 5 - Solaris 10 11/06 Man Pages

Other operating system man pages available here


Advanced Search

Hopefully, this page is exactly what you are looking for, but if not, you can always find further assistance on Unix/Linux Forum!





SQL Commands                                             NOTIFY()



NAME
     NOTIFY - generate a notification


SYNOPSIS
     NOTIFY name


DESCRIPTION
     The NOTIFY command sends a notification event to each client
     application that has previously executed LISTEN name for the
     specified notification name in the current database.

     NOTIFY provides a simple form of signal or interprocess com-
     munication mechanism for a collection of processes accessing
     the same PostgreSQL database.  Higher-level  mechanisms  can
     be  built by using tables in the database to pass additional
     data (beyond a mere  notification  name)  from  notifier  to
     listener(s).

     The information passed to  the  client  for  a  notification
     event  includes  the  notification  name  and  the notifying
     session's server process PID.  It  is  up  to  the  database
     designer  to define the notification names that will be used
     in a given database and what each one means.

     Commonly, the notification name is the same as the  name  of
     some table in the database, and the notify event essentially
     means, ``I changed this table, take a  look  at  it  to  see
     what's  new''.  But  no  such association is enforced by the
     NOTIFY and LISTEN commands. For example, a database designer
     could  use  several  different  notification names to signal
     different sorts of changes to a single table.

     When NOTIFY is used to signal the occurrence of changes to a
     particular  table,  a useful programming technique is to put
     the NOTIFY in a rule that is triggered by table updates.  In
     this  way, notification happens automatically when the table
     is changed, and the application  programmer  can't  acciden-
     tally forget to do it.

     NOTIFY interacts with SQL  transactions  in  some  important
     ways. Firstly, if a NOTIFY is executed inside a transaction,
     the notify events are not delivered  until  and  unless  the
     transaction  is committed. This is appropriate, since if the
     transaction is aborted, all the commands within it have  had
     no  effect, including NOTIFY. But it can be disconcerting if
     one is expecting the notification  events  to  be  delivered
     immediately.  Secondly,  if  a  listening session receives a
     notification signal while it is within  a  transaction,  the
     notification  event  will  not be delivered to its connected
     client until just after the transaction is completed (either




SQL - Language StatemLast change: 2005-11-05 1







SQL Commands                                             NOTIFY()



     committed  or  aborted).  Again,  the reasoning is that if a
     notification were delivered within a  transaction  that  was
     later  aborted, one would want the notification to be undone
     somehow - but the server cannot ``take back'' a notification
     once  it  has sent it to the client.  So notification events
     are only delivered between transactions. The upshot of  this
     is  that  applications  using NOTIFY for real-time signaling
     should try to keep their transactions short.

     NOTIFY behaves like Unix signals in one  important  respect:
     if  the same notification name is signaled multiple times in
     quick succession, recipients may get only  one  notification
     event  for several executions of NOTIFY. So it is a bad idea
     to depend on the number of notifications received.  Instead,
     use  NOTIFY  to wake up applications that need to pay atten-
     tion to something, and use a  database  object  (such  as  a
     sequence)  to  keep track of what happened or how many times
     it happened.

     It is common for a client that executes NOTIFY to be listen-
     ing  on  the  same notification name itself. In that case it
     will get back a notification event, just like all the  other
     listening sessions. Depending on the application logic, this
     could result in useless work, for example, reading  a  data-
     base  table  to find the same updates that that session just
     wrote out. It is possible to avoid such extra work by notic-
     ing whether the notifying session's server process PID (sup-
     plied in the notification event  message)  is  the  same  as
     one's  own  session's  PID (available from libpq). When they
     are the same, the  notification  event  is  one's  own  work
     bouncing back, and can be ignored. (Despite what was said in
     the preceding paragraph, this is a  safe  technique.   Post-
     greSQL  keeps self-notifications separate from notifications
     arriving from other sessions, so you cannot miss an  outside
     notification by ignoring your own notifications.)

PARAMETERS
     name Name of the notification to be signaled  (any  identif-
          ier).

EXAMPLES
     Configure and execute a listen/notify sequence from psql:

     LISTEN virtual;
     NOTIFY virtual;
     Asynchronous notification "virtual" received from server process with PID 8448.


COMPATIBILITY
     There is no NOTIFY statement in the SQL standard.






SQL - Language StatemLast change: 2005-11-05 2







SQL Commands                                             NOTIFY()



SEE ALSO
     LISTEN [listen(5)], UNLISTEN [unlisten(l)]






















































SQL - Language StatemLast change: 2005-11-05 3






Man(1) output converted with man2html and wrapped by fishsponge

This page was generated on Wed Sep 12 11:27:54 GMT 2007

Your favourite pages:

No pages logged yet.
Trying to save cookie...

Top 10 most popular pages:

sqlite3 man page (5085 hits)
(openSUSE 10.2)

adv_cap_autoneg man page (4749 hits)
(Solaris 10 11_06)

CPAN man page (4469 hits)
(Suse Linux 10.1)

svn man page (4249 hits)
(FreeBSD 6.2)

ssh man page (4249 hits)
(Suse Linux 10.1)

ssh-socks5-proxy-connect man page (2208 hits)
(Solaris 10 11_06)

startproc man page (2201 hits)
(Suse Linux 10.1)

netcat man page (2159 hits)
(Suse Linux 10.1)

pprosetup man page (2017 hits)
(Solaris 10 11_06)

signal man page (2009 hits)
(Suse Linux 10.1)

Useful Links

Go Back

Visitor Statistics


Valid XHTML 1.0 Transitional     Valid CSS!

Partners: Cambridge Plus :: Pyrenees Prices and Terms and Conditions :: Stainless Steel Footswitch :: <Link Available>
Unix Man Pages / Linux Man Pages :: HiFi Forum :: SIP VoIP Phone & Provider Reviews :: UNIX/Linux Forum Archives

More info on advertising on Unix/Linux Forum