pg_listen は、PostgreSQLサーバからの非同期通知メッセージの監視要求の作成、変更、キャンセルを行ないます。 callbackCommandパラメータを付けると、要求が確立します。 さもなくば、既存要求のコマンド文字列が置換されます。 callbackCommandパラメータを付けないと、以前の要求はキャンセルされます。
pg_listen要求が確立した後、 その名前を持った通知メッセージがサーバから届く度に、指定されたコマンド文字列が実行されます。 これは、PostgreSQLクライアントアプリケーションがその名前を参照するNOTIFYコマンドを発行した時に発生します。 コマンド文字列はTclの待機ループから実行されます。 Tkを使用したアプリケーションでは、これは通常の待機状態です。 Tk以外のTclシェルの場合、update もしくは vwait を実行することで、待機ループに入ることができます。
pg_listenを使用する場合、直接LISTENもしくはUNLISTENSQL文を呼び出さないでください。 pgtclではこれらの文の発行を管理しています。 しかし、自身から通知メッセージを送信する場合は、pg_execを使用してNOTIFY 文を呼び出してください。