1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 <2009> 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 <2009> 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Detecting data lost from a subscriber |
From: | Ralph Lange <[email protected]> |
To: | Bruno Coudoin <[email protected]> |
Cc: | [email protected] |
Date: | Wed, 08 Jul 2009 11:08:43 +0200 |
Hello Bruno, you should take Bob's statement as a "no".Channel Access itself silently overwrites entries in the send queue, and does not provide the client with information that or how many updates were lost.
If you want that functionality, you have to add the needed information to the data. E.g. use a sub record and add C code that acts as a simple counter and mangles a sequence number into your data. Plus client code to separate things again. Careful: Array data is not put into the server side queue (only references to the array), so using an array to add the sequence number would at the same time enable you to detect missing updates and create a lot of missing updates. (Probably not what you want.)
Another option is to reverse client and server sides: If your data source acts as a CA client, it can use CA put-complete calls that would implement a handshake. That technique doesn't allow multiple subscriptions to the same value, of course.
Good luck! Ralph On 07.07.2009 19:22 Dalesio, Leo wrote:
The last value in the queue is overwritten with the latest value. Bob -----Original Message----- From: [email protected] on behalf of Bruno Coudoin Sent: Tue 7/7/2009 1:00 PM To: [email protected] Subject: Detecting data lost from a subscriberHi, As I understand it, the CAS server just discards data if the queue isfull for a subscriber.In this case, is there a way for the subscriber to know that a sample has been lost ? Thanks, Bruno.