無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

LISTEN

名前

LISTEN -- 通知を監視する

概要

LISTEN 

channel

説明

LISTEN は現在のセッションを、通知チャネル channel のリスナとして登録します。 現在のセッションが既に指定した通知チャネルのリスナとして登録されている場合は、何も起こりません。

このセッションまたは同一データベースに接続している別のセッションによって NOTIFY channel が実行されると、現在その通知チャネルを監視している全てのセッションに対して通知されます。 次に、各セッションは接続中のクライアントアプリケーションにこれを通知します。

UNLISTEN コマンドを使って、セッションに登録された指定通知チャネルを解除できます。 また、セッションの監視登録はそのセッションが終了した時点で自動的に削除されます。

クライアントアプリケーションが通知イベントを検出する方法は、使用している PostgreSQL アプリケーションプログラミングインタフェースに依存します。 libpq ライブラリを使用するアプリケーションでは、 LISTEN を通常のSQLコマンドとして発行し、その後、 PQnotifies ルーチンを定期的に呼び出して通知イベントが受信されたかどうかを調べる必要があります。 libpgtcl 等の他のインタフェースには、通知イベントを扱うより高レベルな方法が用意されています。 実際、 libpgtcl を使ったアプリケーションの場合、プログラマが LISTEN UNLISTEN を直接発行する必要すらありません。 詳細については、使用中のインタフェースのドキュメントを参照してください。

NOTIFY には、 LISTEN および NOTIFY についてのより広範な説明があります。

パラメータ

channel

通知チャネルの名前です(任意の識別子)。

注釈

LISTEN はトランザクションのコミット時に影響します。 LISTEN または UNLISTEN がトランザクション内で実行され、それがロールバックされた場合、監視している通知チャネルの集合には変化はありません。

LISTEN を実行したトランザクションでは二相コミットの準備を行うことはできません。

psql から、監視/通知処理の設定と実行を行います。

LISTEN virtual;
NOTIFY virtual;
Asynchronous notification "virtual" received from server process with PID 8448.

互換性

標準SQLに LISTEN はありません。

関連項目

NOTIFY , UNLISTEN

powered by SEO.CUG.NET