Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
<== Date ==> <== Thread ==>

Subject: Re: Handling of a character waveform of 64k elements
From: Andrew Johnson <anj@aps.anl.gov>
To: tech-talk@aps.anl.gov
Cc: Di Maio Franck <Franck.DiMaio@iter.org>
Date: Thu, 28 Apr 2011 11:20:56 -0500
Hi Ritesh,

On Thursday 28 April 2011 10:41:32 Ritesh Sugandhi wrote:
> Now , So I lower down the size to NLEM=65535,and kept the
> EPICS_CA_MAX_ARRAY_BYTES=90000 Now I receive the following output
> 
> *$ caget Py:char64k | more*
> *CA.Client.Exception...............................................*
> *    Warning: "The requested data transfer is greater than available memory
> or EPICS_CA_MAX_ARRAY_BYTES"*
> *    Context: "op=0, channel=Py:char64k, type=DBR_TIME_CHAR, count=65535,
> ctx="server unable to load read (or subscription update) response into
> protocol buffer PV="Py:char64k" max bytes=65560""*
> *    Source File: ../getCopy.cpp line 92*
> *    Current Time: Thu Apr 28 2011 17:31:05.277255000*
> *..................................................................*
> *Read operation timed out: some PV data was not read.*
> *Py:char64k 65535 0 0 0 0 0 0 0 0...... 0 0 0 *
> 
> I could not figure out the error.

On workstation machines that have virtual memory you should just set 
EPICS_CA_MAX_ARRAY_BYTES to some large number like 10000000 (maybe even bigger 
if you're going to be transferring images around over CA) and forget about 
trying to get the value exactly right.  Doing that really doesn't waste memory 
since the OS won't allocate physical RAM for the whole buffer until it's 
actually used.  The only place where you may need to be careful with the 
setting for EPICS_CA_MAX_ARRAY_BYTES is on an embedded system (vxWorks or 
RTEMS) that has a limited amount of RAM.

- Andrew
-- 
An error is only a mistake if you don't learn from it.
When you learn something from it, it becomes a lesson.

References:
Handling of a character waveform of 64k elements Ritesh Sugandhi
Re: Handling of a character waveform of 64k elements Matt Newville
Re: Handling of a character waveform of 64k elements Ritesh Sugandhi

Navigate by Date:
Prev: Re: regarding CaChannel v1.6 handling of dynamic subarrays Andrew Johnson
Next: RE: Handle leak in Channel Access Server V4.13 (current EPICS base) - WinXP Jeff Hill
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
Navigate by Thread:
Prev: Re: Handling of a character waveform of 64k elements Ritesh Sugandhi
Next: regarding CaChannel v1.6 handling of dynamic subarrays Ritesh Sugandhi
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  <20112012  2013  2014  2015  2016  2017  2018  2019 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·