ToracleEvent and Timing

MBeckius

Member
I've create a simple proc to test TOracleEvent:

DECLARE
x NUMBER;
BEGIN
x := 1;
WHILE x < 100
LOOP
dbms_alert.signal('test', x);
COMMIT;
x := x + 1;
END LOOP;
END;

In the Delphi App the onEvent handler looks like this:

Memo1.Lines.add(Info[0]);

When I run the proc, I only get a few messages delivered? I've tried both synchronized and not. If you are subscribed to an event is message delivery garaunteed? Can you please explain this behaviour? I'm using oracle 7.x

Thanks
 
Unfortunately it is not sufficient to be registered for an alert. If an alert is signaled and you are not currently waiting for that alert, you will miss it. The dbms_pipe method may be more appropriate if this is a problem, though it has other limitations.

------------------
Marco Kalter
Allround Automations
 
This is expected behaviour according to Oracle documentation, which says that you're not guaranteed to see every intermediate value.
 
Back
Top