Epics@GSI Webhome

Epics Tips And Tricks Multiple IOCs

multiple IOCs

To have one PC / Computer per IOC/Server seems to be an annoying situation.
Solution would be to be able to have several IOCs running on a PC. But you will be faced by the following Problems
(taken from talk of Kenneth Evans: "_Channel Access in Depth_", Kenneth Evans, Jr., March 8, 2005 as Part of the EPICS “Getting Started” Lecture Series, p15):

Multiple Servers on the Same Host
  • Used to not be possible at all (Base 3.13)
  • Now, it can be done, but there are problems
  • Will get message
    • cas warning: Configured TCP port was unavailable. Using dynamically assigned TCP port 45003, but now two or more servers share the same UDP port. Depending on your IP kernel this server may not be reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)
  • First part means clients will establish their circuit on another port than the default 5064.
    • Not a problem
  • Second part means unicast search requests may not get to both servers
    • UDP deficiency, similar to the CaRepeater problem
    • May be a problem when EPICS_CA_ADDR_LIST is used

    Solution 1: EPICS_CA_ADDR_LIST

    EPICS_CA_ADDR_LIST
    • Determines where to search
    • Is a list (separated by spaces)
      • “123.45.1.255 123.45.2.14 123.45.2.108”
    • Default is broadcast addresses of all interfaces on the host
      • Works when servers are on same subnet as clients
    • Broadcast address
      • Goes to all servers on a subnet
      • Example: 123.45.1.255
      • Use ifconfig –a on UNIX to find it (or ask an administrator)

By setting the EPICS_CA_ADDR_LIST, the EPICS Channel Access (Client) Address List on the client site.
E.g. for MEDM:
  1. export EPICS_CA_ADDR_LIST and start medm in the same session
    $> export EPICS_CA_ADDR_LIST && medm &

    Solution 2: make use of more EPICS environment variables to allow inter IOC communication

    Following the thread in tech-talk Multiple IOC from 2007:
       It was fixed by setting the CAS Beacon Address List to the address and ports of the other IOC's CA repeater port.
    
       IOC1
    
       EPICS_CAS_BEACON_ADDR_LIST=nnn.nnn.nnn.nnn:5071
       EPICS_CA_ADDR_LIST=nnn.nnn.nnn.nnn:5070
    
       IOC2
    
       EPICS_CA_Server_Port=5070
       EPICS_CAS_Server_Port=5070
       EPICS_CA_Repeater_Port=5071
       EPICS_CAS_BEACON_ADDR_LIST=nnn.nnn.nnn.nnn:5065
       EPICS_CA_ADDR_LIST=nnn.nnn.nnn.nnn:5064
    
    


-- PeterZumbruch - 2017-03-31
-- PeterZumbruch - 2018-01-08

This topic: Epics > WebHome > DevelopersCorner > EpicsTipsAndTricksAndExamples > EpicsTipsAndTricksMultipleIOCs
Topic revision: 2018-01-08, PeterZumbruch
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding GSI Wiki? Send feedback | Legal notice | Privacy Policy (german)