Oznámení
Sekce Oznámení naslouchá asynchronním notifikacím, které relace posílají prostřednictvím samotné databáze, a zobrazuje je hned, jak dorazí:
- PostgreSQL:
LISTEN/NOTIFY; - Oracle:
DBMS_ALERT; - Firebird: události (
POST_EVENT).
MySQL, MariaDB, SQL Server a SQLite žádný ekvivalent nemají; u nich sekce místo skrytí funkce zobrazí Kanály typu NOTIFY nejsou pro připojení … podporovány.
Otevření sekce
Klikněte na ikonu Oznámení na levé liště. Sekce sdílí pruh záložek otevřených připojení se sekcí Databáze — vyberte záložku a uvidíte kanály a zprávy daného připojení. Není-li otevřeno žádné připojení, zobrazí se Není otevřeno žádné připojení. s výzvou, abyste nejprve nějaké otevřeli v panelu Databáze.
Naslouchání nezávisí na tom, zda je sekce Oznámení zobrazena: jakmile se připojení otevře v sekci Databáze, OmniDB začne naslouchat na jeho uložených kanálech (přes samostatné, vyhrazené připojení, takže nikdy neovlivňuje vaše karty dotazu ani konzole) a přestane, když se záložka tohoto připojení zavře.
Kanály
Levá část sekce je strom s kořenem Kanály. Kanál přidáte kliknutím na + pod stromem (nebo pravým tlačítkem na strom → Přidat kanál), zadáním Názvu kanálu a stiskem Enter. OmniDB na něm okamžitě začne naslouchat. Názvy alertů v Oracle jsou omezeny na 30 bajtů, názvy událostí ve Firebirdu na 255.
Po kliknutí pravým tlačítkem na kanál máte k dispozici:
- Pozastavit / Obnovit — zastaví nebo znovu spustí naslouchání na daném kanálu (pozastavený kanál má přeškrtnutý zvoneček);
- Vymazat zprávy — odstraní zprávy daného kanálu ze seznamu;
- Smazat — po potvrzení odstraní kanál (dostupné také jako − pod stromem). Odstraní se i jeho zprávy.
Kanály a jejich stav (pozastavený/aktivní) se ukládají pro každého uživatele OmniDB a každé připojení zvlášť, takže se po restartu obnoví. Názvy kanálů PostgreSQL se používají jako identifikátory v uvozovkách, s rozlišováním velikosti písmen.
Zprávy
Přijaté zprávy se zobrazují vpravo v tabulce se sloupci Kanál, Čas (kdy je OmniDB přijala) a Obsah. Události Firebirdu nenesou žádný obsah, proto u nich sloupec Obsah ukazuje, kolikrát byla událost vyvolána.
Řada zaškrtávacích políček nad tabulkou filtruje seznam: Všechny kanály, nebo jen kanály, které zaškrtnete. Vymazat vše vyprázdní celý seznam.
Zprávy se uchovávají pouze v prohlížeči (nebo okně desktopové aplikace), který je přijal: nikam se neukládají a po opětovném načtení stránky zmizí.
Pokud zprávy přicházejí rychleji, než je stránka stíhá zpracovávat, OmniDB naslouchání raději zastaví, než aby se hromadily bez omezení; zastaví ho také při selhání naslouchajícího připojení. V obou případech se zobrazí pruh s vysvětlením a tlačítkem Restartovat naslouchání.

Odeslání testovací notifikace
Notifikace se posílají obyčejným SQL, například z karty dotazu nad stejnou databází:
-- 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