listen.sgml
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:5k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. <refentry id="SQL-LISTEN">
  2.  <refmeta>
  3.   <refentrytitle>
  4.    LISTEN
  5.   </refentrytitle>
  6.   <refmiscinfo>SQL - Language Statements</refmiscinfo>
  7.  </refmeta>
  8.  <refnamediv>
  9.   <refname>
  10.    LISTEN
  11.   </refname>
  12.   <refpurpose>
  13.    Listen for a response on a notify condition
  14.   </refpurpose>
  15.  </refnamediv>
  16.  <refsynopsisdiv>
  17.   <refsynopsisdivinfo>
  18.    <date>1998-10-07</date>
  19.   </refsynopsisdivinfo>
  20.   <synopsis>
  21. LISTEN <replaceable class="PARAMETER">name</replaceable>
  22.   </synopsis>
  23.   <refsect2 id="R2-SQL-LISTEN-1">
  24.    <refsect2info>
  25.     <date>1998-10-07</date>
  26.    </refsect2info>
  27.    <title>
  28.     Inputs
  29.    </title>
  30.    <para>
  31.     <variablelist>
  32.      <varlistentry>
  33.       <term><replaceable class="PARAMETER">name</replaceable></term>
  34.       <listitem>
  35.        <para>
  36. Name of notify condition.
  37.        </para>
  38.       </listitem>
  39.      </varlistentry>
  40.     </variablelist>
  41.    </para>
  42.   </refsect2>
  43.   <refsect2 id="R2-SQL-LISTEN-2">
  44.    <refsect2info>
  45.     <date>1998-09-24</date>
  46.    </refsect2info>
  47.    <title>
  48.     Outputs
  49.    </title>
  50.    <para>
  51.     <variablelist>
  52.      <varlistentry>
  53.       <term><computeroutput>
  54. LISTEN
  55.        </computeroutput></term>
  56.       <listitem>
  57.        <para>
  58. Message returned upon successful completion of registration.
  59.        </para>
  60.       </listitem>
  61.      </varlistentry>
  62.      <varlistentry>
  63.       <term><computeroutput>
  64. NOTICE Async_Listen: We are already listening on <replaceable class="PARAMETER">name</replaceable>
  65.        </computeroutput></term>
  66.       <listitem>
  67.        <para>
  68. If this backend is already registered for that notify condition.
  69.        </para>
  70.       </listitem>
  71.      </varlistentry>
  72.     </variablelist>
  73.    </para>
  74.   </refsect2>
  75.  </refsynopsisdiv>
  76.  <refsect1 id="R1-SQL-LISTEN-1">
  77.   <refsect1info>
  78.    <date>1998-10-07</date>
  79.   </refsect1info>
  80.   <title>
  81.    Description
  82.   </title>
  83.   <para>
  84.    <command>LISTEN</command> registers the current <productname>Postgres</productname> backend as a
  85.    listener on the notify condition
  86.    <replaceable class="PARAMETER">name</replaceable>.
  87.   </para>
  88.   <para>
  89.    Whenever the command 
  90.    <command>NOTIFY <replaceable class="PARAMETER">name</replaceable></command>
  91.    is invoked, either by this backend or another one connected to
  92.    the same database, all the backends currently listening on that notify
  93.    condition are notified, and each will in turn notify its connected
  94.    frontend application.  See the discussion of <command>NOTIFY</command>
  95.    for more information.
  96.   </para>
  97.   <para>
  98.    A backend can be unregistered for a given notify condition with the
  99.    <command>UNLISTEN</command> command.  Also, a backend's listen registrations
  100.    are automatically cleared when the backend process exits.
  101.   </para>
  102.   <para>
  103.    The method a frontend application must use to detect notify events depends on
  104.    which <productname>Postgres</productname> application programming interface it
  105.    uses.  With the basic libpq library, the application issues
  106.    <command>LISTEN</command> as an ordinary SQL command, and then must
  107.    periodically call the routine <function>PQnotifies</function> to find out
  108.    whether any notify events have been received.  Other interfaces such as
  109.    libpgtcl provide higher-level methods for handling notify events; indeed,
  110.    with libpgtcl the application programmer should not even issue
  111.    <command>LISTEN</command> or <command>UNLISTEN</command> directly.  See the
  112.    documentation for the library you are using for more details.
  113.   </para>
  114.   <para>
  115.    The reference page for <command>NOTIFY</command> contains a more extensive
  116.    discussion of the use of <command>LISTEN</command> and
  117.    <command>NOTIFY</command>.
  118.   </para>
  119.   <refsect2 id="R2-SQL-LISTEN-3">
  120.    <refsect2info>
  121.     <date>1998-10-07</date>
  122.    </refsect2info>
  123.    <title>
  124.     Notes
  125.    </title>
  126.    <para>
  127.     <replaceable class="PARAMETER">name</replaceable>
  128.     can be any string valid as a name;
  129.     it need not correspond to the name of any actual table.  If
  130.     <replaceable class="PARAMETER">notifyname</replaceable>
  131.     is enclosed in double-quotes, it need not even be a syntactically
  132.     valid name, but can be any string up to 31 characters long.
  133.    </para>
  134.    <para>
  135.     In some previous releases of
  136.     <productname>Postgres</productname>,
  137.     <replaceable class="PARAMETER">name</replaceable>
  138.     had to be enclosed in double-quotes when it did not correspond to any existing
  139.     table name, even if syntactically valid as a name.  That is no longer required.
  140.    </para>
  141.   </refsect2>
  142.  </refsect1>
  143.  <refsect1 id="R1-SQL-LISTEN-2">
  144.   <title>
  145.    Usage
  146.   </title>
  147.   <para>
  148.    Configure and execute a listen/notify sequence from <application>psql</application>:
  149.    <programlisting>
  150. LISTEN virtual;
  151. NOTIFY virtual;
  152. ASYNC NOTIFY of 'virtual' from backend pid '11239' received
  153.    </programlisting>
  154.   </para>
  155.  </refsect1>
  156.  <refsect1 id="R1-SQL-LISTEN-3">
  157.   <title>
  158.    Compatibility
  159.   </title>
  160.   <refsect2 id="R2-SQL-LISTEN-4">
  161.    <refsect2info>
  162.     <date>1998-09-01</date>
  163.    </refsect2info>
  164.    <title>
  165.     SQL92
  166.    </title>
  167.    <para>
  168.     There is no <command>LISTEN</command> in <acronym>SQL92</acronym>.
  169.    </para>
  170.   </refsect2>
  171.  </refsect1>
  172. </refentry>
  173. <!-- Keep this comment at the end of the file
  174. Local variables:
  175. mode: sgml
  176. sgml-omittag:nil
  177. sgml-shorttag:t
  178. sgml-minimize-attributes:nil
  179. sgml-always-quote-attributes:t
  180. sgml-indent-step:1
  181. sgml-indent-data:t
  182. sgml-parent-document:nil
  183. sgml-default-dtd-file:"../reference.ced"
  184. sgml-exposed-tags:nil
  185. sgml-local-catalogs:"/usr/lib/sgml/catalog"
  186. sgml-local-ecat-files:nil
  187. End:
  188. -->