pg_listen dbHandle notifyName callbackCommand
pg_listen は、PostgreSQL バックエンドからの非同期 NOTIFY メッセージの監視要求の生成、変更、取り消しを行います。 パラメータ callbackCommand を使って、要求を確立したり、既存の要求のコマンド文字列を置換したりします。 パラメータ callbackCommand がない場合は、事前になされた要求が取り消されます。
pg_listen の要求が確立した後、バックエンドから指定した名前を持った NOTIFY メッセージが届くたびに、指定されたコマンド文字列が実行されます。 この手順は、任意の PostgreSQL クライアントアプリケーションがその名前を参照する NOTIFY コマンドを発行するたびに発生します (その名前はデータベース内の既存のリレーションのものである必要がないことに注意してください)。 コマンド文字列は、Tcl の待ちループから実行されます。 それは、Tk で記述されたアプリケーションの通常の待ち状態です。 非 Tk の Tcl シェルの場合は、update または vwait を実行して、待ちループ状態にすることができます。
pg_listen を使用している場合は、直接 LISTEN もしくは UNLISTEN という SQL 文を呼び出さないでください。 Pgtcl はこれらの文の発行を管理しています。 しかし、自分で NOTIFY メッセージを送信したい場合は pg_exec を使って SQL NOTIFY 文を呼び出してください。