SCM Agent List
search cancel

SCM Agent List

book

Article ID: 192912

calendar_today

Updated On:

Products

CA Harvest Software Change Manager CA Harvest Software Change Manager - OpenMake Meister

Issue/Introduction

Is there a way to get a list of all active agents?

Environment

Release : 12.5 and up

Component : CA Harvest Software Change Manager

Resolution

Unfortunately there is not a “central registry” list anywhere that would give us that information. Some things we can do to figure this out are:

- Run an SQL query that will list all the UDP (user-defined process) definitions across all the Harvest projects. Any that execute a Harvest command directly can be reviewed to see which Harvest agent machines they are connecting to.

- For any UDPs that execute scripts, we can review the scripts for any Harvest commands that connect to Harvest agent machines.

- If any users or UDPs are using the “hrefresh” utility, the “hrefresh.cfg” file can be reviewed to find which agent machines are listed there.

- You can poll your users to ask if any are making Agent connections directly from Workbench, and what are the hostnames of those agent machines.

- If you’re using Harweb at all, then any user who connects to Harweb likely has SCM Agent installed on their local machine.



Additional Information

Here is a database query you can use to generate a list of all UDP processes in your Harvest database:

/* For Oracle */

  SELECT * FROM (
    SELECT
      HE.ENVIRONMENTNAME,
      DECODE(HE.ENVISACTIVE,'Y','ACTIVE','N','INACTIVE','T','TEMPLATE') ENVTYPE,
      HS.STATENAME,
      HSP.PROCESSNAME AS PARENTPROCESS,
      DECODE(HLP.PROCESSPRELINK,'Y','PRELINK','POSTLINK') LINKTYPE,
      HU.PROCESSOBJID,
      HU.PROCESSNAME,
      HU.PROGRAMNAME
    FROM
      HARUDP HU
      INNER JOIN HARLINKEDPROCESS HLP ON HLP.PROCESSOBJID = HU.PROCESSOBJID
        AND HLP.PARENTPROCOBJID = HU.PARENTPROCOBJID
      INNER JOIN HARSTATEPROCESS HSP ON HSP.PROCESSOBJID = HLP.PARENTPROCOBJID
        AND HSP.STATEOBJID = HLP.STATEOBJID
      INNER JOIN HARSTATE HS ON HS.STATEOBJID = HSP.STATEOBJID
      INNER JOIN HARENVIRONMENT HE ON HE.ENVOBJID = HS.ENVOBJID
    UNION
    SELECT
      HE.ENVIRONMENTNAME,
      DECODE(HE.ENVISACTIVE,'Y','ACTIVE','N','INACTIVE','T','TEMPLATE') ENVTYPE,
      HS.STATENAME,
      'STANDALONE' PARENTPROCESS,
      '' LINKTYPE,
      HU.PROCESSOBJID,
      HU.PROCESSNAME,
      HU.PROGRAMNAME
    FROM
      HARUDP HU
      INNER JOIN HARSTATEPROCESS HSP ON HSP.PROCESSOBJID = HU.PROCESSOBJID
        AND HSP.STATEOBJID = HU.STATEOBJID
      INNER JOIN HARSTATE HS ON HS.STATEOBJID = HSP.STATEOBJID
      INNER JOIN HARENVIRONMENT HE ON HE.ENVOBJID = HS.ENVOBJID
  ) RESULT
  ORDER BY ENVIRONMENTNAME, STATENAME, PARENTPROCESS, PROCESSNAME

/* For SQL Server */

  SELECT * FROM (
    SELECT
      HE.ENVIRONMENTNAME,
      CASE 
        WHEN HE.ENVISACTIVE='Y' THEN 'ACTIVE'
        WHEN HE.ENVISACTIVE='N' THEN 'INACTIVE'
        WHEN HE.ENVISACTIVE='T' THEN 'TEMPLATE'
        ELSE '' 
      END AS ENVTYPE,
      HS.STATENAME,
      HSP.PROCESSNAME AS PARENTPROCESS,
      CASE
        WHEN HLP.PROCESSPRELINK='Y' THEN 'PRELINK'
        ELSE 'POSTLINK'
      END AS LINKTYPE,
      HU.PROCESSOBJID,
      HU.PROCESSNAME,
      HU.PROGRAMNAME
    FROM
      HARUDP HU
      INNER JOIN HARLINKEDPROCESS HLP ON HLP.PROCESSOBJID = HU.PROCESSOBJID
        AND HLP.PARENTPROCOBJID = HU.PARENTPROCOBJID
      INNER JOIN HARSTATEPROCESS HSP ON HSP.PROCESSOBJID = HLP.PARENTPROCOBJID
        AND HSP.STATEOBJID = HLP.STATEOBJID
      INNER JOIN HARSTATE HS ON HS.STATEOBJID = HSP.STATEOBJID
      INNER JOIN HARENVIRONMENT HE ON HE.ENVOBJID = HS.ENVOBJID
    UNION
    SELECT
      HE.ENVIRONMENTNAME,
      CASE 
        WHEN HE.ENVISACTIVE='Y' THEN 'ACTIVE'
        WHEN HE.ENVISACTIVE='N' THEN 'INACTIVE'
        WHEN HE.ENVISACTIVE='T' THEN 'TEMPLATE'
        ELSE ' ' 
      END AS ENVTYPE,
      HS.STATENAME,
      'STANDALONE' PARENTPROCESS,
      '' LINKTYPE,
      HU.PROCESSOBJID,
      HU.PROCESSNAME,
      HU.PROGRAMNAME
    FROM
      HARUDP HU
      INNER JOIN HARSTATEPROCESS HSP ON HSP.PROCESSOBJID = HU.PROCESSOBJID
        AND HSP.STATEOBJID = HU.STATEOBJID
      INNER JOIN HARSTATE HS ON HS.STATEOBJID = HSP.STATEOBJID
      INNER JOIN HARENVIRONMENT HE ON HE.ENVOBJID = HS.ENVOBJID
  ) RESULT
  ORDER BY ENVIRONMENTNAME, STATENAME, PARENTPROCESS, PROCESSNAME