-----Original Message-----
From: Gasper Jansa [mailto:[email protected]]
Sent: Wednesday, January 12, 2011 1:39 AM
To: Jeff Hill
Cc: Dirk Zimoch
Subject: gateway question
Dear Jeff
Some time ago we did a change in the gateway in a way that events were
posted with alarm mask
set only when alarm or status changed. This was done because before this
change alarm handler
was receiving all events and thus 'polluting' its log files since
gateway posted all events with value/log/alarm mask set.
It has been reported now, that it can happen that alarm handler
sometimes does not receive update (e.g. alarm handler
shows that there is an alarm on the record when in reality it is
cleared) when connected via gateway.
I don't know exactly the reason why this happens but probably the reason
is in the feature of channel
access when client can not consume all events a bunch of them can be
dropped but it is assured that
the client always receives the latest one. Is this true?
I can imagine the following scenario when gateway connects to one record:
1. Value in the record changes which also sets an alarm. Gateway
receives an monitor update from the record. It detects that
alarm has changed so it posts new event to its clients (via
postEvent routine) with value + alarm mask set. All clients receive this
event.
2. Some time later the value in the record changes again which clears an
alarm. Gateway again receives an monitor update
from the record. It detects that alarm has been cleared so it posts
new event to its clients with value + alarm mask set.
3. For some reason this event is dropped (e.g. (I don't really know how
this works) so clients never receive this event.
4. In the meantime value in the record changes again and gateway
receives update. Now the alarm/status of the record is the same
as in last monitor update so it posts new event only with value mask
set.
5. This last event is sent to the client again but this time only with
value mask set and hence the alarm handler does not receive the update.
Is this possible?
Best Regards
Gasper