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, não será feito nada.

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 ouvindo esta condição de notificação no momento são notificadas, e cada uma por sua vez notifica seu aplicativo cliente conectado. Para obter informações adicionais deve ser consultada a documentação do comando NOTIFY.

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 o aplicativo cliente deve utilizar para detectar eventos de notificação depende da interface de programação de aplicativos (API) do PostgreSQL que o aplicativo usa. Quando usa a biblioteca libpq o aplicativo executa o comando LISTEN como um comando SQL comum e, depois, deverá chamar periodicamente a função PQnotifies para descobrir se foi recebido algum evento de notificação. Outras interfaces, como a libpgtcl, fornecem métodos de nível mais alto para tratar os eventos de notificação; na verdade, quando a libpgtcl é usada o programador do aplicativo não deve nem mesmo executar o comando LISTEN ou UNLISTEN diretamente. Para obter mais detalhes deve ser consultada a documentação da interface sendo utilizada.

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 ouvir/notificar a partir do psql:

LISTEN virtual;
NOTIFY virtual;
Notificação assíncrona "virtual" recebida do processo servidor com PID 5438.

Compatibilidade

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

Consulte também

NOTIFY, UNLISTEN
SourceForge.net Logo CSS válido!