\set ECHO all
SELECT dbms_alert.register('a1');
SELECT dbms_alert.register('a2');
SELECT dbms_alert.register('tds');
SELECT dbms_alert.waitone('a1',20);
SELECT dbms_alert.waitany(10);
SELECT dbms_alert.waitone('tds',10);
SELECT dbms_alert.waitone('tds',2);
SELECT dbms_alert.signal('b1','Transaction still running');
SELECT dbms_alert.signal('b1','Transaction committed');
SELECT dbms_alert.waitone('tds',10);
SELECT dbms_alert.signal('b2','to check unregistered alert wait');
SELECT dbms_alert.waitone('a3',2);
SELECT dbms_alert.register('a4');
SELECT dbms_alert.waitone('a4',2);
SELECT dbms_alert.remove('a1');
SELECT dbms_alert.signal('b3','remove(a1) called');
SELECT dbms_alert.waitone('a1',2);
SELECT dbms_alert.signal('b4','to check unremoved alert');
SELECT dbms_alert.waitone('a4',10);
SELECT dbms_alert.removeall();
SELECT dbms_alert.signal('b5','removeall called');
SELECT dbms_alert.waitany(2);