<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <HTML ><HEAD ><TITLE >pg_listen</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 7.4.1 Documentation" HREF="index.html"><LINK REL="UP" TITLE="pgtcl Command Reference" HREF="libpgtcl-ref.html"><LINK REL="PREVIOUS" TITLE="pg_execute" HREF="pgtcl-pgexecute.html"><LINK REL="NEXT" TITLE="pg_on_connection_loss" HREF="pgtcl-pgon-connection-loss.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META NAME="creation" CONTENT="2003-12-22T03:48:47"></HEAD ><BODY CLASS="REFENTRY" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" >PostgreSQL 7.4.1 Documentation</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="pgtcl-pgexecute.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="pgtcl-pgexecute.html" >Fast Backward</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="pgtcl-pgon-connection-loss.html" >Fast Forward</A ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="top" ><A HREF="pgtcl-pgon-connection-loss.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="PGTCL-PGLISTEN" ></A >pg_listen</H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN22794" ></A ><H2 >Name</H2 >pg_listen -- set or change a callback for asynchronous notification messages<A NAME="IX-PGTCL-PGLISTEN-2" ></A ></DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN22799" ></A ><H2 >Synopsis</H2 ><PRE CLASS="SYNOPSIS" >pg_listen <VAR CLASS="PARAMETER" >conn</VAR > <VAR CLASS="PARAMETER" >notifyName</VAR > ?<SPAN CLASS="OPTIONAL" ><VAR CLASS="PARAMETER" >callbackCommand</VAR ></SPAN >?</PRE ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN22805" ></A ><H2 >Description</H2 ><P > <CODE CLASS="FUNCTION" >pg_listen</CODE > creates, changes, or cancels a request to listen for asynchronous notification messages from the <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > server. With a <VAR CLASS="PARAMETER" >callbackCommand</VAR > parameter, the request is established, or the command string of an already existing request is replaced. With no <VAR CLASS="PARAMETER" >callbackCommand</VAR > parameter, a prior request is canceled. </P ><P > After a <CODE CLASS="FUNCTION" >pg_listen</CODE > request is established, the specified command string is executed whenever a notification message bearing the given name arrives from the server. This occurs when any <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > client application issues a <TT CLASS="COMMAND" >NOTIFY</TT ><A NAME="AEN22816" ></A > command referencing that name. The command string is executed from the Tcl idle loop. That is the normal idle state of an application written with Tk. In non-Tk Tcl shells, you can execute <CODE CLASS="FUNCTION" >update</CODE > or <CODE CLASS="FUNCTION" >vwait</CODE > to cause the idle loop to be entered. </P ><P > You should not invoke the SQL statements <TT CLASS="COMMAND" >LISTEN</TT > or <TT CLASS="COMMAND" >UNLISTEN</TT > directly when using <CODE CLASS="FUNCTION" >pg_listen</CODE >. <SPAN CLASS="APPLICATION" >pgtcl</SPAN > takes care of issuing those statements for you. But if you want to send a notification message yourself, invoke the SQL <TT CLASS="COMMAND" >NOTIFY</TT > statement using <CODE CLASS="FUNCTION" >pg_exec</CODE >. </P ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN22828" ></A ><H2 >Arguments</H2 ><P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><VAR CLASS="PARAMETER" >conn</VAR ></DT ><DD ><P > The handle of the connection on which to listen for notifications. </P ></DD ><DT ><VAR CLASS="PARAMETER" >notifyName</VAR ></DT ><DD ><P > The name of the notification condition to start or stop listening to. </P ></DD ><DT ><VAR CLASS="PARAMETER" >callbackCommand</VAR ></DT ><DD ><P > If present, provides the command string to execute when a matching notification arrives. </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN22846" ></A ><H2 >Return Value</H2 ><P > None </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="pgtcl-pgexecute.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="pgtcl-pgon-connection-loss.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >pg_execute</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="libpgtcl-ref.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >pg_on_connection_loss</TD ></TR ></TABLE ></DIV ></BODY ></HTML >