Alarm pipeline issues with "dateArithmetic" expression tags

I have generated a tag which uses time mathematics to work out if a remote system has been out of communication for longer than 4 hours here is the code that i am using within the expression tag:

if(dateArithmetic({[.]XXXXXXXXX}, 4, "hours") > now(),0,1)

This tag functions correctly and the alarm fires when the boolean = 1, the issue arises when i attempt to push the alarm through a pipeline, the pipeline will initialise, as seen in the gateway console but the notification fails to come through. I know that the pipeline is functional as i recieve notification when the pipeline is tested in the gateway and when the pipeline is used on other tags within this project.

The only way i have been able to get this tags alarm pipeline to function is if i put a delay on the alarm, im thinking that there may be an issue with running dateArithmetic or Now() while trying to process an alarm pipeline, could i get feedback if this is a known issue or not.

Gateway version: 7.6.4 (b2013112117)



No, we’re not aware of any particular issue concerning “now” in alarm expressions. The most immediate thing that comes to mind is that either the alarm is clearing before it gets to the point you want it to, or perhaps the “ack mode” on the alarm is set to “unused”, which causes it to be always “acknowledged”, which can make it drop out of the pipeline.

Let’s try the following:

  1. In the gateway, log in and go to Console>Levels
  2. Search for “BlockEvaluationContext”, and change it’s level to Trace (full name: Alarming.Notification.Pipeline.BlockEvaluationContext)
  3. Look for Alarming.Manager, and change it to Debug.
  4. Try to trigger your alarm.
  5. Look at the console, or track down the wrapper.log file in {InstallDir}\logs, and look for messages from those along the lines of:
    “Processing alarm triansition… ->Active”
    “The alarm event… will be dropped from the pipeline”.

There are really only a few possibilities: either it’s not making it to the pipeline, or it’s dropping out sooner than you would think. So along those lines, double check that the “active pipeline” setting is correct as well. Though I didn’t put it above, setting the logger for “AlarmPipelineManagerImpl” to Debug will also log a message about the pipeline receiving the event.

If it’s not immediately clear what’s wrong, post any messages you get here, or attach the wrapper.log file, and we’ll take a look.