Hi:
The first IOC will serve on TCP port 5065.
The second one can't do that, so you get the warning Configured TCP port was unavailable, ...Using dynamically assigned TCP port 34497.
Both will try to listen to UDP search requests on the same port, then reply with the TCP port that they actually use, so all should be fine.
BUT: Because of a quirk in most network kernels only one of them will actually see those UDP search requests. For me it's usually the IOC started _last_.
If you want your clients to send search requests to all IOCs that are listening on the UDP port, you need to send a broadcast. Search requests sent to a specific IP address will only reach one of the IOCs listening on that IP.
You can try setting the EPICS_CA_ADDR_LIST=255.255.255.255.
With localhost, that may not be possible, so you'll have to setup some network interface, maybe leave it disconnected, but it must have an IP address and most important a broadcast address.
-Kay
On Jul 9, 2013, at 1:50 PM, Jameson Graef Rollins <[email protected]> wrote:
> Hey, folks. I'm trying to run multiple IOCs on the same host and
> network interface and I'm looking for tips to help get it working
> cleanly. I'm aware of some of the issues of servers sharing the same
> interface [0]. However, I assume there must be a way to support this
> situation, since I imagine it must be common. But I'm having a lot of
> trouble getting it to work.
>
> Some details that may or may not be relevant:
> * I'm using the pcaspy python bindings.
> * I'm trying to bind all of my servers to the loopback interface (I'm
> trying to put together a test infrastructure and this is required
> (afaik) for offline tests).
>
> I can start the first IOC no problem:
>
> 0$ EPICS_CAS_INTF_ADDR_LIST=localhost ./testioc.py TEST0:
> prefix: TEST0:
> db: {'FOO': {'prec': 0}}
>
> Client channel access works as expected:
>
> 0$ EPICS_CA_ADDR_LIST=localhost EPICS_CA_AUTO_ADDR_LIST=NO caget -t TEST0:FOO
> 0
> 0$
>
> When I start the second server I get the (expected) shared UDP warnings:
>
> 0$ EPICS_CAS_INTF_ADDR_LIST=localhost ./testioc.py TEST1:
> cas warning: Configured TCP port was unavailable.
> cas warning: Using dynamically assigned TCP port 34497,
> cas warning: but now two or more servers share the same UDP port.
> cas warning: Depending on your IP kernel this server may not be
> cas warning: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
> prefix: TEST1:
> db: {'FOO': {'prec': 0}}
>
> But unfortunately the first server is now no longer accessible:
>
> 0$ EPICS_CA_ADDR_LIST=localhost EPICS_CA_AUTO_ADDR_LIST=NO caget -t TEST1:FOO
> 0
> 0$ EPICS_CA_ADDR_LIST=localhost EPICS_CA_AUTO_ADDR_LIST=NO caget -t TEST0:FOO
> Channel connect timed out: 'TEST0:FOO' not found.
> 1$
>
> I've tried variously killing the caRepeater and accessing things in
> different order, but nothing seems to work. Things do work if I specify
> different EPICS_CA_SERVER_PORT for the two servers, but that's an
> inconvenience for the client since it has to know which record is being
> served on which port.
>
> Does anyone have any suggestions on how to make this situation work?
>
> jamie.
>
> [0] http://www.aps.anl.gov/epics/base/R3-14/8-docs/CAref.html#Unicast
- Replies:
- Re: multiple servers on the same (loopback) interface Jameson Graef Rollins
- RE: multiple servers on the same (loopback) interface Hill, Jeff
- References:
- multiple servers on the same (loopback) interface Jameson Graef Rollins
- Navigate by Date:
- Prev:
multiple servers on the same (loopback) interface Jameson Graef Rollins
- Next:
Re: multiple servers on the same (loopback) interface Jameson Graef Rollins
- 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:
multiple servers on the same (loopback) interface Jameson Graef Rollins
- Next:
Re: multiple servers on the same (loopback) interface Jameson Graef Rollins
- 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
|