EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Local CA out links broken during PINI
From: "Jeff Hill" <[email protected]>
To: "'Andrew Johnson'" <[email protected]>, <[email protected]>, <[email protected]>
Date: Tue, 17 Feb 2009 13:30:39 -0700
FWIW: The CA client does not connect via TCP through the CA server when it’s a local channel, and instead the db_xxxx functions are called directly. A local channel is one that is hosted within the same IOC as the client library context. Therefore, at least rsrv_init and rsrv_run need not complete prior to connecting a local channel. As Andrew mentioned, the dbCa facility would definitely need to be running first, however.

Jeff

> -----Original Message-----
> From: [email protected] [mailto:[email protected]]
> On Behalf Of Andrew Johnson
> Sent: Monday, February 16, 2009 9:37 AM
> To: [email protected]; [email protected]
> Subject: Re: Local CA out links broken during PINI
> 
> Hi Ben,
> 
> On Monday 16 February 2009 05:07:12 Benjamin Franksen wrote:
> >
> > it seems that CA output links do not work at all during PINI processing
> if
> > the target record is on the same IOC.
> 
> > I think this is a bug, as I could not find any note on this behaviour in
> > the Developer's Guide.
> 
> Please consider the task of bringing up an IOC, i.e. what iocInit does.
> Here
> are some lines from iocInit, in order of execution:
> 
>     initialProcess();
> 
>     /* Start CA server threads */
>     rsrv_init();
> ...
>    /* Enable scan tasks and some driver support functions.  */
>     scanRun();
>     dbCaRun();
> ...
>     rsrv_run();
> 
> The CA server has not even been initialized when the initialProcess() (i.e.
> PINI processing) takes place, and the dbCa link task which manages CA links
> is not running at that point either.  PINI has to happen before we release
> the scan threads or allow CA links to connect because they can initiate
> record processing.
> 
> We can't allow external CA clients to connect before the PINI processing is
> done because they might interfere with that initialization, and I suspect
> it
> would be hard to add a separate path to the server to allow internal CA
> clients to connect in advance of the external ones.
> 
> I agree that the documentation does not discuss PINI much, but [despite
> being
> slightly out-dated by R3.14.10] section 7.4 of the AppDevGuide does make
> clear that initialProcess() happens before rsrv_init().
> 
> - Andrew
> --
> The best FOSS code is written to be read by other humans -- Harold Welte



References:
Local CA out links broken during PINI Benjamin Franksen
Re: Local CA out links broken during PINI Andrew Johnson

Navigate by Date:
Prev: Re: Problems with EPICS installation Pete Jemian
Next: Re: Problems with EPICS installation Pete Jemian
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Local CA out links broken during PINI Andrew Johnson
Next: NewPort Optical power meter Model 1918-C Mehta, Pratik
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·