Provided by: slony1-2-doc_2.2.11-6_all bug

NAME

       WAIT FOR EVENT - Have Slonik script wait for previous event to complete

SYNOPSIS

       WAIT FOR EVENT (options);

DESCRIPTION

       Waits for event Confirmation.

       Slonik remembers the last event generated on every node during script execution (events generated by ear‐
       lier calls are currently not checked). In certain situations it is necessary that events generated on one
       node  (such  as  CREATE  SET)  are  processed on another node before issuing more commands (for instance,
       SLONIK SUBSCRIBE SET(7)). WAIT FOR EVENT may be used to cause the slonik script to wait for  confirmation
       of an event, which hopefully means that the subscriber node is ready for the next action.

       WAIT FOR EVENT must be called outside of any try block in order to work, since new confirm messages don't
       become visible within a transaction.

       ORIGIN = ival | ALL
              The origin of the event(s) to wait for.

       CONFIRMED = ival | ALL
              The node ID of the receiver that must confirm the event(s).

       WAIT ON = ival
              The ID of the node where the “sl_confirm” [not available as a man page] table is to be checked.

       TIMEOUT = ival
              The  number of seconds to wait. Default is 600 (10 minutes). TIMEOUT = 0 causes the script to wait
              indefinitely.

EXAMPLE

       WAIT FOR EVENT (
         ORIGIN = ALL,
         CONFIRMED = ALL,
         WAIT ON = 1
       );

LOCKING BEHAVIOUR

       No application-visible locking should take place.

VERSION INFORMATION

       This command was introduced in Slony-I 1.0

       In version 2.0, the default value for WAIT ON was removed, so a node must be specified.

ODDITIES

       Not all events return interesting results. For instance, many people have  run  afoul  of  problems  with
       SLONIK  SUBSCRIBE  SET(7),  when  subscribing  a  new set. Be aware (and beware!) that a SLONIK SUBSCRIBE
       SET(7) request will return the event confirmation almost immediately, even though there might be  several
       hours of work to do before the subscription is ready. The trouble with SLONIK SUBSCRIBE SET(7) is that it
       is  processed  as two events, one on the origin node, with a second event, to enable the subscription, on
       the subscriber.

       In order to more reliably monitor from within a slonik(1) script that SLONIK  SUBSCRIBE  SET(7)  is  com‐
       plete,  you  may  submit a SLONIK SYNC(7) event after the subscription, and have the WAIT request wait on
       the SYNC event, as follows.

            # Assuming that node 1 is the origin for set 999 that has direct subscribers 2 and 3
            SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 2);
            WAIT FOR EVENT (ORIGIN = 1, CONFIRMED = ALL, WAIT ON=1);
            SUBSCRIBE SET (ID = 999, PROVIDER = 1, RECEIVER = 3);
            WAIT FOR EVENT (ORIGIN = 1, CONFIRMED = ALL, WAIT ON=1);
            MERGE SET ( ID = 1, ADD ID = 999, ORIGIN = 1 );

                                                19 September 2024                       SLONIK WAIT FOR EVENT(7)