Triggering on failed-over
A failed-over trigger can only be fired when a standby server becomes the new master and first starts up during a successful p4 failover command.
Special variables:
- %standbyserverid% expands to the serverID of the standby before failover
- %standbyserverport% expands to the P4PORT of the standby before failover
To define a failed-over trigger, use the p4 triggers command to configure the triggers form with this syntax:
triggerName failed-over failed-over command
The following table describes the fields for a trigger definition:
Field | Meaning |
---|---|
name |
The name of the trigger, such as testFailover2 |
|
Must be failed-over |
|
Must be failed-over |
|
The trigger for Helix Core Server to run when the master restarts after a successful failover. Specify the command in a way that allows Helix Core Server to locate and run the command. The command is typically a call to a script. The command must be quoted. The command can take any arguments that your trigger can parse, including Helix Core Server trigger variables. |
-
Most of the usual trigger variables are not available for this trigger because this fires at server startup before any client connection
-
You can have zero, one, or more failed-over triggers. Each failed-over trigger is asynchronous and independent of the others, so if one trigger fails, its failure has no effect on the others.
-
See also Triggering on heartbeat (server responsiveness) and Triggering on failed-back.
Example
In the Triggers: field, your form might have something similar to this:
testFailover failed-over failed-over "perl '%serverroot%'/test.pl '%serverport%' '%serverid%' '%standbyserverid%' '%standbyserverport%'" testFailover2 failed-over failed-over "perl '%serverroot%'/test.pl '%serverport%' '%serverid%' '%standbyserverid%' '%standbyserverport%'" testTrigger3 failed-over failed-over "perl '%serverroot%'/test.pl '%serverport%' '%serverid%' '%standbyserverid%' '%standbyserverport%'"