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
<2009>
2010
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
<2009>
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|