CA Workload Automation Agents

Expand all | Collapse all

WA EE Agents - using a VIP addr for primary / failover agent

  • 1.  WA EE Agents - using a VIP addr for primary / failover agent

    Posted 03-25-2019 07:28 PM

    Scenario:  We installed agents on a primary and failover server with the same agent name (one remains down) and then created a VIP with the two addresses. In AGENTDEF, I defined the agent name with the VIP and port but get a 'connection error'. When I define the agent with the actual addr and port of either server, then the Manager 11.4 on z.OS  and the agent are able to communicate, one at a time.

     

    How do I define a DR agent to be able to failover to using a VIP?  Should we not use a VIP?  Should the agent names be different and both remain up? Would workflow scripts know to use the DR agent if the primary agentname is coded?

     

    Looking for suggestions.

    thanks, Loraine



  • 2.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 03-27-2019 08:18 AM

    We code the agent name for the VIP with VIP address, similar to what is shown in the diagram.

     

     

    https://docops.ca.com/ca-workload-automation-system-agent/11-4/en/administrating/configure-the-agent/configure-agent-aliases-for-clustered-environments

     

    What creates your clustered environment of Primary/Seconday servers?

     

    Do you have a separate unique address for the VIP?



  • 3.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-01-2019 04:12 PM

    Thanks, I've some reading to do on 'clustering' and investigating to see if they're using a 'cluster management software'.

    Yes, the VIP has a unique separate address than the two servers.



  • 4.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-02-2019 09:19 AM

    As far as ESP goes it does not matter if the VIP is from 'cluster management software' or a 'black box'.

     

     

    Do you have 3 separate server names/IP Addresses?

     

     

    From the mainframe ISPF Primary Option Menu option 6 Command
    ping <VIP Address>

    Does the VIP respond to ping?

    If yes use that as the address of the agent name for the VIP.

    Can you post excerpt of the agent def file from the MF and agentparm.txt from servers?



  • 5.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-04-2019 10:26 AM

    The environ doesn't have 'cluster management software', nor a shared storage space for a spool file.

    Yes I'm able to ping the VIP addr, and able to ping the two server addresses from =6.

    I'm not able to TELNET to the vip port 'telnet terminated-foreign host aborted the connection (8556), nor the servers ports 'telnet terminated- connection closed'. (Should I?)

     

    Using the VIP addr with the agent name causes a connection error, using the addr of the server works.

          AGENT my_agent         +               
          ADDRESS(my.vip.addr.here) +           
          PORT(3001)  +                            
          UNIX ASCII TCPIP ENCRYPT KEYNAME(xxxxx64) +
          PREFIXING                   

     

    At the moment both agents are named the same, with one of them remaining down.

    I see the advantages of using an alias and both agents being up at the same time. 

      agentname=my_agent

      communication.inputport=3001

      communication.managerid_1=CENTRAL_MANAGER
      communication.manageraddress_1=my.manager.addr
      communication.managerport_1=3003
      communication.monitorobject_1=my_agent/AGENTMON1.0/MAIN



  • 6.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-04-2019 10:51 AM

    If you are not able to TELNET vip port, then ESP will not be able to connect.

     

    Below is what I get:

    =6

    telnet <VIP> <Port> 

    MVS TCP/IP TELNET CS V2R2                                               
    Connecting to <VIP>, <Port>       
    *** 

    Telnet terminated -- Connection closed      
    ***   

    ** ISPF screen input error - code = 23 **
    ***    

     

    If I check the receiver.log file I see a "Read Timeout" message.

     

    04/04/2019 10:32:30.139 EDT-0400 1 TCP/IP Controller Plugin.Receiver pool thread <Slow:1>.CybReceiverChannel.receive[:234] - cybermation.library.communications.CybConversationTimeoutException: Read timed out

     

    Can you verify that the VIP routes to the correct server?

     

    Use terminal emulation software (I use PuTTY) and connect to the VIP. 

     

    Login and verify the server name is what you expect (hostname)

    Does your agent parameter file (agentparm.txt) have the statement for the alias?

    communication.alias_1=<VIP Agent Name>

     

     



  • 7.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-04-2019 12:17 PM

    unable to telnet to the VIP:

    telnet <VIP> <port>

    MVS TCP/IP TELNET CS V2R2                                      

    Connecting to <VIP> <dot.ted.add.ress>,  port <xxxx>  

    Telnet terminated -- Foreign host aborted the connection (8556)

    Will use PuTTY to check that the VIP routes to the correct server.

    Will play around with the communication.alias_1 parm.

    What does the alias parm look like for the manager side, anything else I need to add there?

     

    Thanks for all the suggestions!!



  • 8.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-04-2019 12:47 PM

    "unable to telnet to the VIP" needs to be resolved, may need to include your network group.

     

    Or contact the person/group that provide the VIP Address.

     

    Once that is resolved verify Agent Definition File contains 3 agents (1 for each server and 1 for the VIP)

     

    AGENT <AgentServer1> ADDRESS(<Server1>)  . . .                                
    AGENT <AgentServer2> ADDRESS(<Server2>)  . . .                                
    AGENT <AgentVIP>     ADDRESS(<VIP>) . . .                                

     

     

    Unix / Linux Agent Parameter file excerpts:

     

    Server1

    #
    # Agent name
    #
    agentname=AgentServer1

    #
    # Communications
    #

    communication.alias_1=AgentVIP

    communication.inputport=3001

     

    Server2

    #
    # Agent name
    #
    agentname=AgentServer2

    #
    # Communications
    #

    communication.alias_1=AgentVIP

    communication.inputport=3001



  • 9.  Re: WA EE Agents - using a VIP addr for primary / failover agent

    Posted 04-05-2019 09:56 AM

    Not sure you can create a VIP the way you did.

     

    A couple of alternatives.  Install ESP Agent on each server with unique agent names and both servers are up and working.  Code logic in ESP to determine which server to route to.

     

    Alternative #1

    We have Events defined that invoke a SYMLIB which sets a variable to a value, when the job runs the AGENT statement sets the agent to the Primary Agent's name.  The expression in the IF statement is evaluated and if it is true the agent is set to the Secondary Agent's name.  Updates to SYMLIB can be manual or automated with some coding. 

     

    LINUX_JOB MY_JOB1                                         
      AGENT <Primary Agent>                                    
      IF expression THEN AGENT <Secondary Agent >                                
      SCRIPTNAME <script>                         
      RUN ANYDAY                                              
    ENDJOB    


    Alternative #2

    Invoke a SYMLIB at the job level to set the agent name dynamically.  REXX code would need to be written to set the agent name.

     

    LINUX_JOB MY_JOB2                                         
      INVOKE '<SYMLIB>'            
      AGENT %AgentName                                     
      SCRIPTNAME <script>                         
      RUN ANYDAY                                              
    ENDJOB  

        

    Alternative #3

    Look at additional Workload Object Types (IP_MON/PROCESS_MON/AGENT_MON) as building blocks to create a more intelligent application that does what you require.         

     

    Let me know if you need additional information on any of the alternatives