.NET

Notificações

A secção Notificações escuta as notificações assíncronas que as sessões enviam através da própria base de dados e mostra-as à medida que chegam:

O MySQL, o MariaDB, o SQL Server e o SQLite não têm equivalente; para eles, a secção indica Os canais do tipo NOTIFY não são suportados para ligações …. em vez de ocultar a funcionalidade.

Abrir a secção

Clique no ícone Notificações na barra esquerda. A secção partilha a faixa de separadores de ligação abertos com a secção Base de dados — selecione um separador para ver os canais e as mensagens dessa ligação. Sem nenhuma ligação aberta, mostra Nenhuma ligação aberta. e pede-lhe que abra primeiro uma no painel Base de dados.

A escuta não depende de a secção Notificações estar visível: assim que uma ligação é aberta na secção Base de dados, o OmniDB começa a escutar os seus canais guardados (através de uma ligação separada e dedicada, pelo que nunca interfere com os seus separadores de consulta ou de consola), e para quando esse separador de ligação é fechado.

Canais

O lado esquerdo da secção é uma árvore com a raiz Canais. Para adicionar um canal, clique em + por baixo da árvore (ou clique com o botão direito na árvore → Adicionar canal), escreva o Nome do canal e prima Enter. O OmniDB começa de imediato a escutá-lo. Os nomes de alertas Oracle estão limitados a 30 bytes e os nomes de eventos Firebird a 255.

Clique com o botão direito num canal para:

Os canais e o respetivo estado de pausa/ativo são guardados por utilizador do OmniDB e por ligação, pelo que voltam após um reinício. Os nomes de canais do PostgreSQL são usados como identificadores entre aspas, sensíveis a maiúsculas e minúsculas.

Mensagens

As mensagens recebidas aparecem à direita numa tabela com as colunas Canal, Hora (quando o OmniDB a recebeu) e Conteúdo. Os eventos Firebird não transportam conteúdo, pelo que, para eles, Conteúdo mostra quantas vezes o evento foi publicado.

A fila de caixas de seleção por cima da tabela filtra a lista: Todos os canais, ou apenas os canais que assinalar. Limpar tudo esvazia a lista inteira.

As mensagens são mantidas apenas no browser (ou na janela da aplicação de ambiente de trabalho) que as recebeu: não são armazenadas em lado nenhum e desaparecem depois de recarregar a página.

Se as mensagens chegarem mais depressa do que a página as consome, o OmniDB para de escutar em vez de as deixar acumular sem limite; também para se a ligação de escuta falhar. Em ambos os casos, uma faixa explica o motivo, com um botão Reiniciar escuta.

The Notify section with received messages

Enviar uma notificação de teste

As notificações são enviadas com SQL simples, por exemplo a partir de um separador de consulta na mesma base de dados:

-- PostgreSQL (delivered when the transaction commits)
NOTIFY my_channel, 'hello';
SELECT pg_notify('my_channel', 'hello');

-- PostgreSQL, channel name with upper-case letters: quote it
NOTIFY "MyChannel", 'hello';

-- Oracle
BEGIN
  DBMS_ALERT.SIGNAL('my_alert', 'hello');
  COMMIT;
END;

-- Firebird (the event is posted on commit)
EXECUTE BLOCK AS BEGIN POST_EVENT 'my_event'; END