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: DB CA link to PROC field |
From: | Tim Mooney <[email protected]> |
To: | Andrew Johnson <[email protected]> |
Cc: | [email protected] |
Date: | Wed, 15 Jul 2009 10:15:05 -0500 |
Andrew Johnson wrote:
On Tuesday 14 July 2009 17:53:25 Benjamin Franksen wrote:On Dienstag, 14. Juli 2009, Tim Mooney wrote:Benjamin Franksen wrote:I get this message on the iocsh (base is 3.14.8.2): dbCaTask ca_array_put Channel write request failed OTERMPCGP:cmdRmp has DB CA link to OTERMPCGP:colStRmp.PROCBen, I get that same error message when I use a CA link (from any record) to process a record whose processing results in an error. If your situation is like mine, OTERMPCGP:colStRmp should be in some kind of alarm.Interesting. I'll check this. The message is a bit misleading (if this is indeed what causes it), to me it suggests that I have somehow misconfigured the link.I agree the message is misleading. It occurs because any error status returned by device support is passed back up the call chain and is returned by the record type's process() routine, by dbProcess(), then by dbPutField(). db_put_field converts it to a 0 or -1 value and results in the channel access server reporting a write error to the client, which in this case is the dbCa link where your error message came from.I would be interested in any thoughts on whereabouts in the above chain we should clear any error status from device support. I suspect it should be the record type's responsibility once it has put the record into an alarm state (thus handling and reporting the error), but I could be persuaded otherwise.- Andrew
I think it's a great thing to have a message identifying the record whose CA link caused the processing that failed. I think a less generic error message would be an improvement. People expect an error message to say what's wrong; the message "<record> has a DB CA link..." gives context for the previous message, but I read it as implying something wrong with the link. For me, it would be clearer if the message said something like "An error occurred while <record A> was writing, via a DB CA link, to <record B>". -- Tim Mooney ([email protected]) (630)252-5417 Beamline Controls & Data Acquisition Group Advanced Photon Source, Argonne National Lab.