Just to be brutally clear.....
Array pointers get queued - NOT the data.
If you overwrite an array record before the data is sent to the client, the array is overwritten and a second monitor is posted - that is a second pointer to the same buffer is put on the queue. So the array will be sent twice. NOT two different arrays. THe most recent array will be sent twice. So, it is important to consume these at the rate that they are produced.
There are tools for measuring IOC performance. Keep the IOC loaded under 50%. Keep the link loaded under 15%. Make sure that the client can process the data fast enough.
Bob
-----Original Message-----
From: Ralph Lange [mailto:[email protected]]
Sent: Wed 7/8/2009 10:24 AM
To: Bruno Coudoin
Cc: Dalesio, Leo; [email protected]
Subject: Re: Detecting data lost from a subscriber
Hello Bruno,
For arrays, the server side queue does not contain the values, but a
pointer to the array.
In the case of the server queue filling up, i.e. the server generating
more updates than CA is able to push onto the network...
...atomic data will be kept as copies in the queue, i.e. data is lost
only if the queue gets filled up completely, in which case the server
overwrites the last queue element each time it gets a new update.
...array data will be kept in the application (e.g. IOC database), so
that any new update happening before the queue is empty will lead to
data loss.
Or - in other words: A half-full server queue is a healthy situation for
atomic data (no updates lost), and an unhealthy situation for array data
(CA will always send the current array data).
Usually the server side queue is a good thing to handle short changes in
network and/or client load. For arrays, as soon as you need the queue,
you lose data.
Background: Arrays can be large. If CA would copy arrays onto the queue,
the IOC could easily run out of memory due to a client or network
problem, which would make the IOC far too vulnerable.
Hope this answers your question...
Ralph
On 08.07.2009 15:58 Bruno Coudoin wrote:
> Le mercredi 08 juillet 2009 à 11:08 +0200, Ralph Lange a écrit :
>
>
>> 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.)
>>
>
> I don't understand this point. In what would it make things worse, could
> you please explain me.
>
- Replies:
- Re: Detecting data lost from a subscriber Andrew Johnson
- References:
- Detecting data lost from a subscriber Bruno Coudoin
- RE: Detecting data lost from a subscriber Dalesio, Leo
- Re: Detecting data lost from a subscriber Ralph Lange
- Re: Detecting data lost from a subscriber Bruno Coudoin
- Re: Detecting data lost from a subscriber Ralph Lange
- Navigate by Date:
- Prev:
Re: Detecting data lost from a subscriber Ralph Lange
- Next:
Re: Detecting data lost from a subscriber Andrew Johnson
- 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
- Navigate by Thread:
- Prev:
Re: Detecting data lost from a subscriber Ralph Lange
- Next:
Re: Detecting data lost from a subscriber Andrew Johnson
- 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
|