pg_listen

Name

pg_listen -- 非同期 NOTIFY メッセージ用のコールバックを設定または変更します。

Synopsis

pg_listen dbHandle notifyName callbackCommand

入力

dbHandle

有効なデータベースハンドルを指定します。

notifyName

通知監視状態を開始するまたは停止する通知条件名を指定します。

callbackCommand

存在し、空でない場合、条件にあった通知メッセージが届いた時に実行する コマンド文字列を提供します。

出力

なし。

説明

pg_listen は、Postgres バックエンドからの非同期 NOTIFY メッセージの監視要求の生成、変更、取り 消しを行ないます。パラメータ callbackCommand を使って、要求を確立したり、 既存のリクエストのコマンド文字列を置換したりします。パラメータ callbackCommand が無い場合は、事前になされた要求が取り消されます。

pg_listen の要求が確立した後、バックエンドから指定 した名前を持った NOTIFY メッセージが届く度に、指定コマンド文字列が実行 されます。この手順は、任意の Postgres クライ アントアプリケーションがその名前を参照する NOTIFY コマンドを発行する度に 発生します。(その名前はデータベース内の既存のリレーションのものである必 要がないことに注意して下さい。) コマンド文字列は、Tcl の待ちループから実行されます。それは、Tk で記述さ れたアプリケーションの通常の待ち状態です。非 Tk の Tcl シェルの場合は、 update または vwait を実行し て、待ちループ状態にすることができます。

pg_listen を使用している場合は、直接 LISTEN も しくは UNLISTEN という SQL 文を呼び出さないで下さい。Pgtcl はこれら の文の発行をユーザから引き受けています。しかし、自身から NOTIFY メッ セージを送信したい場合は pg_exec を使って SQL NOTIFY 文を呼び出して下さい。