LISTEN

Nome

LISTEN -- ouve uma notificação

Sinopse

LISTEN nome

Descrição

O comando LISTEN registra a sessão corrente como ouvinte da condição de notificação nome. Se a sessão corrente já estiver registrada como ouvinte desta condição de notificação, nada é feito.

Sempre que o comando NOTIFY nome é executado, tanto por esta sessão quanto por outra conectada ao mesmo banco de dados, todas as sessões escutando esta condição de notificação no momento são notificadas, e cada uma por sua vez notifica sua aplicação cliente conectada. Veja a explicação do comando NOTIFY para obter mais informações.

A sessão pode cancelar o registro para uma determinada condição de notificação utilizando o comando UNLISTEN. Os registros da sessão como ouvinte são automaticamente removidos quando a sessão termina.

O método que a aplicação cliente deve usar para detectar eventos de notificação depende da interface de programação de aplicações (API) do PostgreSQL que a aplicação usa. Quando usa a biblioteca libpq a aplicação executa o comando LISTEN como um comando SQL comum, e depois deve chamar periodicamente a função PQnotifies para descobrir se algum evento de notificação foi recebido. Outras interfaces, como a libpgtcl, fornecem métodos de mais alto nível para tratar os eventos de notificação; na verdade, usando a libpgtcl o programador da aplicação não deve nem mesmo executar o comando LISTEN ou UNLISTEN diretamente. Consulte a documentação da interface sendo usada para obter mais detalhes.

O comando NOTIFY contém uma explicação mais extensa sobre a utilização do comando LISTEN e do comando NOTIFY.

Parâmetros

nome
O nome da condição de notificação (qualquer identificador).

Exemplos

Configurar e executar a seqüência escutar/notificar a partir do psql:

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

Compatibilidade

Não existe o comando LISTEN no padrão SQL.

Veja também

NOTIFY , UNLISTEN
SourceForge.net Logo