I have two spike arrest policies in my proxy. I use the following code to separate them:
<FaultRule name="spike_arrest">
<Step>
<Name>fault_spike_arrest</Name>
<Condition>spikearrest.spike_protection.failed = "true"</Condition>
</Step>
<Step>
<Name>fault_revalidate_spike_arrest</Name>
<Condition>(spikearrest.revalidate_spike_protection.failed = "true")</Condition>
</Step>
<Condition>(fault.name = "SpikeArrestViolation")</Condition>
</FaultRule>
I’ve logged the values of fault.name and it is correct. The value of at least spikearrest.revalidate_spike_protection.failed, however, never gets set. AFAIK this is the correct form of the variable name to check this condition. Is the form of the name for SpikeArrest polciies different?