DragonFly On-Line Manual Pages
SLONIK WAIT FOR EVENT(7) Configuration and Action commands
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 earlier 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 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 complete, 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 );
18 January 2015 SLONIK WAIT FOR EVENT(7)