Notifiche
La sezione Notifiche resta in ascolto delle notifiche asincrone che le sessioni inviano attraverso il database stesso e le mostra man mano che arrivano:
- PostgreSQL:
LISTEN/NOTIFY; - Oracle:
DBMS_ALERT; - Firebird: eventi (
POST_EVENT).
MySQL, MariaDB, SQL Server e SQLite non hanno un equivalente; per questi la sezione, invece di nascondere la funzionalità, indica I canali di tipo NOTIFY non sono supportati per le connessioni ….
Aprire la sezione
Fai clic sull’icona Notifiche nella barra laterale sinistra. La sezione condivide con la sezione Database la striscia delle schede di connessione aperte — seleziona una scheda per vedere i canali e i messaggi di quella connessione. Se non c’è alcuna connessione aperta mostra Nessuna connessione aperta. e chiede di aprirne prima una nel pannello Database.
L’ascolto non dipende dalla visibilità della sezione Notifiche: non appena una connessione viene aperta nella sezione Database, OmniDB inizia ad ascoltare i relativi canali salvati (tramite una connessione separata e dedicata, così da non interferire mai con le schede Query o Console) e smette quando quella scheda di connessione viene chiusa.
Canali
La parte sinistra della sezione è un albero con la radice Canali. Per aggiungere un canale, fai clic su + sotto l’albero (oppure clic destro sull’albero → Aggiungi canale), digita il Nome canale e premi Invio. OmniDB inizia subito ad ascoltarlo. I nomi degli avvisi Oracle sono limitati a 30 byte, quelli degli eventi Firebird a 255.
Fai clic con il tasto destro su un canale per:
- Pausa / Riprendi — interrompere o riavviare l’ascolto su quel canale (un canale in pausa mostra una campanella barrata);
- Cancella messaggi — rimuovere dall’elenco i messaggi di quel canale;
- Elimina — rimuovere il canale (disponibile anche come − sotto l’albero), dopo una conferma. Vengono rimossi anche i suoi messaggi.
I canali e il loro stato (in pausa/attivo) vengono salvati per utente OmniDB e per connessione, quindi ricompaiono dopo un riavvio. I nomi dei canali PostgreSQL vengono usati come identificatori tra virgolette, sensibili alle maiuscole.
Messaggi
I messaggi ricevuti compaiono a destra in una tabella con le colonne Canale, Ora (quando OmniDB lo ha ricevuto) e Contenuto. Gli eventi Firebird non hanno contenuto, quindi per essi Contenuto indica quante volte l’evento è stato inviato.
La riga di caselle di controllo sopra la tabella filtra l’elenco: Tutti i canali, oppure solo i canali che selezioni. Cancella tutto svuota l’intero elenco.
I messaggi vengono conservati solo nel browser (o nella finestra desktop) che li ha ricevuti: non sono memorizzati da nessuna parte e scompaiono dopo il ricaricamento della pagina.
Se i messaggi arrivano più velocemente di quanto la pagina riesca a elaborarli, OmniDB smette di ascoltare invece di lasciarli accumulare senza limiti; smette anche se la connessione di ascolto cade. In entrambi i casi un banner ne spiega il motivo e offre il pulsante Riavvia ascolto.

Inviare una notifica di prova
Le notifiche si inviano con normale SQL, ad esempio da una scheda Query sullo stesso database:
-- 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