Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Asynchronous trigger processing in Oracle
The trigger will continue to fire for subsequent inserts without
blocking unless you explicitly devleop locking logic around it (have
the trigger select for update or use dbms_lock). I think you might
want to look at Oracle Advanced Queuing. your trigger could insert
into an Oracle Queue table and then another process could process the
rows in a first in first out order.
John
idebeinder_at_tut.by (Alex Voitik) wrote in message news:<8d0f28f3.0407090240.7530ddb7_at_posting.google.com>...
> Hi,
>
> could anyone explain how Oracle executes triggers,
> namely if a trigger is fired in asynchronous mode
> or not? Maybe it is tuneable?
>
> For example, there is a trigger defined as
>
> CREATE OR REPLACE TRIGGER Convert_Transaction
> AFTER INSERT OR UPDATE ON TB_TRANSACTIONS
> FOR EACH ROW
> BEGIN
> --
> --code which may be time-consumimg
> --
> END;
>
> This is the only trigger defined for the table.
>
> Will Oracle allow inserts in the table
> TB_TRANSACTIONS if the processing of trigger
> from the previous INSERT is not finished?
> If so, will the trigger for this new INSERT
> be fired?
>
> The behaviour i need is to allow inserts while
> processing the previous "after insert" trigger,
> but to block trigger execution if another trigger
> is still executing, i.e. to make a queue of triggers
> waiting their time to fire.
>
> Can Oracle provide such behaviour with triggers?
> Maybe i should look for another solution?
>
> Thanks for the help!
Received on Fri Jul 09 2004 - 10:53:10 CDT
![]() |
![]() |