TNPM TIPS/TNPM 1.3 Known Issues

From neil.tappsville.com
Revision as of 09:59, 3 September 2019 by Gonzo (talk | contribs) (Created page with "==Known Issues with Tivoli Netcool Performance Manager 1.3.1 (Wireline Component)== ===Abstract=== Known issues with Tivoli Netcool Performance Manager 1.3.1 (Wireline Compo...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Known Issues with Tivoli Netcool Performance Manager 1.3.1 (Wireline Component)

Abstract

Known issues with Tivoli Netcool Performance Manager 1.3.1 (Wireline Component), including installation and upgrade issues.

Content

This technote is organized as follows:

  • Installation issues
  • Upgrade issues
  • General issues


Installation Issues

    • Always use the stopTCRserver.sh and startTCRserver.sh scripts to restart the server**

During Tivoli Netcool Performance Manager installation and administration tasks on the DataView component, you must often restart the application server to apply changes. Always use the following recommended method to restart the server, even if directed to use the Tivoli Integrated Portal commands, startServer.sh and stopServer.sh in the documentation. Note that the location of the stopTCRserver.sh and startTCRserver.sh scripts has changed in Tivoli Netcool Performance Manager Version 1.3.1.

$<TIP_COMPONENTS_LOCATION>/tip21Components/TCRComponent/bin/stopTCRserver.sh <user_name> <password>
$<TIP_COMPONENTS_LOCATION>/tip21Components/TCRComponent/bin/startTCRserver.sh <user_name> <password>

Where:

   <TIP_COMPONENTS_LOCATION> is the location where Tivoli Integrated Portal components are installed, by default /opt/IBM/tivoli/.
   <user_name> indicates a user with Tivoli Integrated Portal administrative permissions.
   <password> is a valid password for that user.


Installing Netcool/Proviso as a Minimal Deployment

The alternative method for browsing to the component media outlined in the following topics of the installation guide does not work:

  • Deploying the Topology
  • Installing on Solaris systems
  • Installing on AIX systems


"Alternatively, you can specify the file locations as prompted."

Always use the primary method provided instead.

"The deployer prompts you for the location of the setup files. Use the file selection window to navigate to the top-level directory for your operating system, /ImageDir/OPERATING_SYSTEM, to avoid further prompts."

For example, assuming that you have copied the setup files to the /export/home/pvuser/52/ directory:

/export/home/pvuser/52/SOLARIS /export/home/pvuser/52/AIX

    • Deployer log default level is set to High (FINEST)**

The deployer log defaults to the highest level of granularity (FINEST). Changing the DTrace flag on the deployer will not allow a user to reduce the default level.

    • Tivoli Common Reporting installation fails and does not notify the deployer**

This is a problem with Install Anywhere. Flexera Problem Report LWIS7XNMUS: Silent install fails with zero return code when rule on installer does not pass.

Currently no release of Install Anywhere has been targeted to fix this.

For Netcool/Proviso, this means that if a Tivoli Common Reporting installation fails, it will not notify the deployer. The "Install TIP" step will report success even though there may have been errors during the installation process.

Symptoms include:

  • The "Install DataView" Step fails.
  • The Tivoli Integrated Portal URL comes up but Tivoli Common Reporting is not available.


Suggested action:

Always check that the Tivoli Integrated Portal URL comes up with all installed components before clicking "Done" on the Deployer window.

    • Launchpad splash screen does not close**

Occasionally, the Launchpad splash screen does not close. To close the screen, you need to kill the splash processes before continuing.

    • Uninstalling the Database**

Additional steps are required to uninstall the database when uninstalling Tivoli Netcool Performance Manager completely.

   Run the topology for the uninstallation without specifying any component to uninstall.
   Run the deployer for uninstallation.
   Remove the database.
   Continue with the Tivoli Netcool Performance Manager uninstallation.


Window for choosing the Oracle JDBC drive location is not working properly

When installing Oracle to a non-default location from a POC installation from the launch pad, changing the location of the Oracle JDBC driver using the "Choose Folder" option can freeze the window. You can stop the process by clicking the “X” on the window. You can then enter the non-default location manually.

This problem does not happen in the next window when you put in the non-default Tivoli Netcool Performance Management location manually, i.e., you can open and create new folders. However, this can happen again for the ORACLE_BASE and ORACLE_HOME folder locations in the next screen of the wizard.

    • Extra step needed before running Deployer on Linux**

Run the following command before running the Deployer:

export AWT_TOOLKIT=MToolkit

    • Uninstalling DataMart on a host with a fully qualified domain name**

Additional steps are required to uninstall a DataMart from a host that has a fully qualified domain name.

In this procedure, you substitute the fully qualified hostname for the short form of the hostname <hostname_short>.

   Run the deployer for the uninstallation.
   In the wizard, compete each step until the final page containing the Step list.
   Open a terminal window on the host where the DataMart you are uninstalling is located.
   Change to the /tmp/ProvisoConsumer/Plan/MachinePlan_<hostname_short>/*_DataMart_step/cfg directory.
   Edit the DataMart.cfg file.
   To hardcode your host name, using the short version, in place of the place holder $TARGET_HOST, change the line TARGET_HOST="$TARGET_HOST" to TARGET_HOST="<hostname_short>".
   Save the DataMart.cfg file.
   Return to the deployer.
   Run the Uninstall DataMart step.


    • On Linux, if the Check DB step in the Deployer fails, ensure that the kernel parameters are correctly set**

On Linux, if the Check DB step fails, ensure the kernel parameters are correctly set. Kernel parameters must be set to the recommended values for the Oracle installation. If any of the kernel parameters are incorrect, the step fails and an error message is logged with the expected value.

You can ignore the fact that the error message refers to "The Solaris semaphore" value. This is an open issue. The message should not just refer to Solaris.

You can set the correct kernel parameter by using the following command:

sysctl <param>=<value>

For example,

sysctl kernel.shmmax=27459232 (or whatever the recommended value is)

If the server has previously been used to install Proviso then the existing kernel parameters are sufficient.

    • RSH is not available as a transfer protocol**

The Deployer allows user to select "RSH", "SSH", or "RSH and SSH" for remote execution of commands. The RSH option is not supported. You can choose either the "SSH", option or the default "SSH and RSH" option. SSH needs to be configured for both of these options.

    • ProvisoPackInstaller only gives space to enter one TIP server at a time**

You need to use the Topology Editor to configure multiple servers to get the check list with multiple servers. If there is no topology documented configured in the database, the screen will only allow you to enter the login information for one server at a time.

You can either deploy the Technology Pack repeatedly by giving a different TIP server each time using Packinstaller or you can use the DataView’s export.sh and import.sh scripts to move the content from one TIP server to another. For more information on the export.sh and import.sh scripts, refer to the DataView User and Administrator Guide.

    • HAM components failed to uninstall**

The uninstall process marks all steps as "Success". However, when the topology is loaded from the database, the HAM components are still present. Running the uninstall process for the second time removes only a few components.

Workaround:

   Save the current topology in the Topology Editor to a local file. For example, /tmp/HAMuninstall.xml.
   Load the local topology file /tmp/HAMuninstall.xml to the Topology Editor.
   Remove the remaining HAM components.
   Save and deploy the topology file.
   Load topology from the database. All the HAM components should be successfully removed.


    • Proviso InfoD startup scripts error**

When installing DataMart, the TNPM installer creates two files, one in /etc with the name pisrc3113ProvisoInfoServer.sh, and the other in /etc/rc.d/init.d/ with the name pis3113ProvisoInfoServer.

When running the pis3113ProvisoInfoServer command located in the /etc/rc.d/init.d directory, the following error is shown:

$ /etc/init.d/pis3113ProvisoInfoServer bash: /etc/init.d/pis3113ProvisoInfoServer: /usr/bin/sh: bad interpreter: No such file or directory

Even if you change the directory from #!/usr/bin/sh to #!/bin/sh in the pis3113ProvisoInfoServer script and run the script again, the following error is shown:

$ /etc/init.d/pis3113ProvisoInfoServer /etc/init.d/pis3113ProvisoInfoServer: line 95: .: filename argument required .: usage: . filename [arguments]

Workaround: The Proviso InfoD process needs to be manually started on the Linux DataMart system that is rebooted. To accomplish this, perform these steps: 1. Login to the DataMart server as 'pvuser'. 2. Source the dataMart.env file. 3. Execute the command: pismgr start

    • Install steps do not appear if JRE step is unchecked for a DISC on remote host**

When installing a DataMart with a Discovery Server to a remote host and this is the only host being deployed, if the JRE host is unchecked in the Host Summary page, the install DataChannel steps do not appear in the Deployer. This only occurs in a High Availability environment.

Workaround: Check the JRE host in the Deployer host selection pane. If the Deployer deploys to the DataMart host and the JRE host, all steps appear.

    • No trailing white space in the value for DiscoHostName for a High Availability install**

The value for the DiscoHostName resource in the PVMHOME/res/C/inventory.User.res file must not have any trailing white space. When there is a trailing white space in the value for DiscoHostName, the GUI fails to utilize the value properly.

    • Rerun the deployer after completely uninstalling the DataChannel component**

When you completely uninstall the DataChannel component from your environment, the Load Channel Configuration step fails in the deployer. When the deployer completes, rerun the deployer. You are presented with the Load Channel Configuration and Load Collector Configuration steps only. Run the steps to successfully complete the uninstallation.

    • Unable to remove the database from the topology**

If you are unable to remove the database from the Topology, run the deployer for uninstallation. You are presented with the Load Channel Configuration and Load Collector Configuration steps only. Run the steps and reload the topology from the database. The Remove action is now enabled on the Database Configurations object in the topology.

Upgrade Issues

    • Load_SQL_Module fails as client is still connected to the system during an upgrade of Oracle Enterprise for a Tivoli Netcool Performance Manager**

When Oracle Enterprise Management GUI client is still connected to the DB, additional steps are required to upgrade Oracle Enterprise for a Tivoli Netcool Performance Manager upgrade. You must run the following steps before doing an upgrade of Oracle Enterprise for the Tivoli Netcool Performance Manager to make sure that there are no more clients connected to the DB before applying an Oracle patch:

1. Connect to the system as a Tivoli Netcool Performance Manager database administrator (default: pv_admin/pv@PV) using the sqlplus command: sqlplus pv_admin/pv@PV

2. Check for connected user sessions: Select * From V$Session Where Nvl( Username, User ) != User;

3. Close any sessions that are shown by the above query by closing the application listed. For example, close the Datachannel components and close any sqlplus sessions.

4. Check for connected user sessions again. If there are still sessions active in v$session and you cannot find the application to close, close each session with: alter system kill session 'SID, serial#'; Where SID and serial# correspond with the session listed in v$session. For example: alter system kill session (7,258);

5. Ensure that there are no connected user sessions before starting the patch process.

    • New hosts in amber colour in the Upgrade wizard**

When upgrading from Netcool/Proviso Version 4.4.1, the Add Multiple Hosts page in the upgrade wizard shows new hosts in the color amber, indicating problems with all of the properties on the host. This is because property defaults are not set until the next page of the wizard during an upgrade.

This behaviour is different from when the host is employed in the Topology Editor as the defaults are initially set on the properties. There are no harmful effects from this behaviour and it can be ignored.

    • IP SLA Monitoring for Cisco IP SLA Technology Pack**

When the collector is installed and started by the installer, some key tables are missing from the database. These tables contain configuration data that enables IP SLA monitoring to work on the Cisco IP SLA Technology Pack. After you complete the installation, if IP SLA operations are required, bounce the collectors once to reload the configuration.

You also need to manually install and compile the CISCO-RTTMON-IP-EXT-MIB.my MIB. The Management GUI will fail all refresh, list, and set commands if this MIB is not installed. You must also perform this MIB installation if you are upgrading your Tivoli Netcool Performance Manager from pre 1.3.1 to Tivoli Netcool Performance Manager 1.3.1.

If you receive a warning message about unresolved dependencies during the CISCO-RTTMON-IP-EXT-MIB.my MIB compilation, you must import and compile the following MIBs together:

CISCO-RTTMON-IP-EXT-MIB.my IPV6-FLOW-LABEL-MIB.txt INET-ADDRESS-MIB.txt DIFFSERV-DSCP-TC.txt Name the compiled MIB file as CISCO-RTTMON-IP-EXT-MIB.my.oid and place it in the /opt/dataload/mibs/oid/ directory.

After the DataView component is installed and started for the first time in Tivoli Netcool Performance Manager 1.3.1, you must stop and start all of the SNMP DataLoad component so that they can pick up the the new probe type definition from the database. Failure to find the new probe type definitions, will cause errors in the IP SLA probe management pages. Probe creations will be systematically rejected with 'invalid type' errors.

General issues

    • SNMP does not check for alternative Ipv4-Ipv6 addresses on DataLoad**

The format “::10.127.77.7” is a deprecated IPv4 mapped IPv6 address. It is a valid address, but how the format is interpreted is up to the underlying operating system stack. The new format for IPv4 mapped addresses is “::FFFF:10.127.77.7”.

Linux and Solaris treat the “::10.127.77.7” address as a true IPv6 address. Collections do not work on these platforms unless a system has the address.

AIX treats the “::10.127.77.7” format the same as the “::FFFF:10.127.77.7” format. This allows collections to work because the IPv4 address is being used.

If you run “dialogTest2 IPCacheDump”, you can see that “::10.127.77.7” is mapped to “::FFFF:10.127.77.7” on AIX, and remains as “::10.127.77.7” on Solaris/AIX.

It is recommended that the standard IPv4 to IPv6 mapping are used on all three platforms for consistency. The format is “::FFFF:10.127.77.7”.

This issue is not a problem with Tivoli Netcool Performance Manager. This issue is caused by a difference in how different operating systems interpret certain IP addresses.

    • Limitation of qping**

qping only supports up to 64 IP addresses on the command line at one time.

For IPv4 addresses, if there are 100 devices to the list of 'Specific elements' in the 'IPaddress include area' of the Inventory discovery tool wizard, then only 64 of these devices are discovered.

For IPv6 addresses, if there are 100 devices to the list of 'Specific elements' in the 'IPaddress include area' of the Inventory discovery tool wizard, then all 100 devices are discovered. There is no ping or SNMP message issued from the collector for the 36 undiscovered devices.

    • Ignore ‘The rcommunity’ string invalid message in the DataMart SNMP Configuration GUI console**

When a value is entered for the Read Community field in the DataMart SNMP Configuration GUI, the following messages are observed in the console:

‘The rcommunity’ string invalid, Invalid key/value pair format ‘i’
‘The rcommunity’ string invalid, Invalid key/value pair format ‘ic’

This is because the the Read Community value is being interpreted as encoded SNMPv3 information. For example, &V3:user=admin:passwd=privs.

These messages are also observed when you select SnmpV3 in the Version field and attempt to assemble the V3 configuration information manually (instead of using the four specific fields for authentication and privacy).

These messages can be safely ignored as they do not prevent further V3 configuration.

    • SNMP 'watchd' process cores when stopping**

When the SNMP collector is stopped by the pvmdmgr stop command, the watchd process is expected to stop within a minute. The watchdog erroneously stops by throwing an exception. A core file is placed in the state directory of the dataload root. When a collector is started, if a core file is found in the state directory, a message is printed, a post mortem file is created in the log directory, and the core is moved into core.bak. It is safe in this case to ignore core.bak and related log reports from the watchd process.

    • Correct notation for the Rule Editor filter**

The following IPv6 style addresses should not be used:

%(Element.ipAddress)='0:0:0:0:0:FFFF:10.127.77.46'
%(Element.ipAddress)='::FFFF:10.127.77.46'
%(Element.ipAddress)='2002:092a:0111:0200:0010:0127:0077:0046'

The correct notation is as follows:

%(Element.ipAddress)='2002:92a:111:200:10:127:77:46'
    • The vertical axis does not show up for a straight line plot in Performance Diagnostic View.**

When there is a straight line plot, for example, 18 plot points with the same value 100, the vertical axis does not show up in the chart.

    • Performance Diagnostic View chart values are supported up to 3 decimal places**

In the DataView component, values in Performance Diagnostic View charts are supported up to 3 decimal places.

    • Tooltips limitation in Internet Explorer**

Internet Explorer throws a warning when a script is taking too long to run and complete when a chart in Diagnostic View is triggered to return 5 metrics over a 24-hour period. Similar views work with no script time out warnings in the Firefox browser.

The script timeout issue in Internet Explorer results in partial data returned and graphed. To alleviate this performance issue with Internet Explorer, the tooltips feature has been disabled for Internet Explorer. The tooltips are still active for the Firefox browser.

    • The TARGET HOST field is not refreshed when you select or toggle the "Change Target Host for BLB and IF to x host" option in Alcatel 5620 Bulk Load Balancer (BLB)**

In the Topology Editor’s Logical View, if a user selects a BLB and uses the right-click operation to move the IV and BLB from channel to collector host or vice versa, the BLB TARGET HOST property will not automatically be refreshed once the operation is complete.

You need to click on the property or click away and then back to the BLB object again to see the refresh value. As a precaution, save the topology prior to the refresh to ensure the value in the memory is always the latest.

    • Cancelling topology load can leave problems view populated**

If you cancel a topology load, the partially loaded topology is cleared from the Topology Editor views. However, the problem view sometimes retains a list of problems with the partially loaded topology. This issue has no functional impact.

    • Ignore MOVE_FAILED message for bufferedContainers file**

The bufferedContainers file exists in the directory but CME is looking at elsewhere for the file.

An example of the MOVE_FAILED message in the proviso.log:

V1:12750        2010.11.25-02.02.50 UTC CME.1.2000-3867:5492    MOVE_FAILED    GYMDC10421W Failed to move 'file:///opt/datachannel/CME.1.2000/SLE.2000/state/temp/state/bufferedContainers' to 'file:///opt/datachannel/CME.1.2000/SLE.2000/state/bufferedContainers', details: 'No such file or directory ("/opt/datachannel/CME.1.2000/SLE.2000/state/temp/state/bufferedContainers")'

When there is a MOVE_FAILED message in the proviso.log for the bufferedContainers file, then it can be safely ignored.

    • The Tivoli Integrated Portal 'iscadmins' and 'administrator' roles and the 'tnpmAdministrator' role are required for the User Preference Management page**

A user must be assigned both the Tivoli Integrated Portal 'iscadmins' and 'administrator' roles and the Tivoli Netcool Performance Manager 'tnpmAdministrator' role to have the appropriate permissions to manage users by using the User Preference Management page in Tivoli Netcool Performance Manager.

For more information on the User Preference Management, refer to the DataView User and Administrator Guide.

    • New logging process for DataChannel requires extra step when changing log settings**

In the TE, the "Log Server" the properties are available.

The property FILTER is used for the proviso.log and the property LOG_FILTER is used for the tnpm.log.

When the values are changed to "FEWI 1234" for FILTER or LOG_FILTER, restarting the dccmd and findvisual will not effect the changes as LOG is not under the findvisual process. Logging is now a JAVA process.

A user must find the java process for the LOG and kill it. Using ps -ef|grep analytics.Main will find the process to be killed. Kill this process and restart the log by running logw (the watchdog script for LOG) or wait 5 minutes for the cronjob to restart the process.

The java process will be similar to this: pvuser 26488 25744 0 18:01:59 pts/75 1:05 java -Xms256m -Xmx384m com.ibm.tivoli.analytics.Main -a LOG

Unable to migrate SilverStream content to TIP/ewAS

    • Problem(Abstract)**

During the upgrade from Proviso 4.4.3.3 to TNPM 1.3x, while trying to migrate the contents from SilverStream to TIP/eWAS using the migrate.sh script, the server returned an error. Symptom

    • The following error is displayed:**

GYMVC0063I: Converting SilverStream pages to JSPs... GYMVC0064E: The command cannot be completed. See the following error message for details: java.io.IOException: java.io.IOException: Server returned HTTP response code: 403 for URL: http://<ip_address>:<port>/PV/SilverStream/Pages/?access-mode=xml Traceback (most recent call last): File "<string>", line 45, in migrateContent File "<string>", line 60, in migratePages Cause

After further investigation it was found that the migrate.sh script was unable to access the contents using the SilverStream administrator login credentials, since the primary authentication mechanism was configured to "LDAP".

    • Resolving the problem**

Once the primary authentication mechanism is changed from "LDAP" to "SilverStream", the migrate.sh script should be able to access all content in the SilverStream server, and the migration should be able to complete successfully.

Duplicate Reports

   The 1.3 to 1.3.1 Upgrade Guide has the section
   Pre-Checking for report duplicates.  Currently
   the following query is presented and is incorrect:
   <---Start---->
   Login as the oracle unix user.
   Search for duplicate report references by logging on to sqlplus
   as PV_ADMIN and issuing the following query:
   $ sqlplus PV_ADMIN/PV@PV
   SQL*Plus: Release 9.2.0.8.0 - Production on Thu Feb 19 17:13:57
   2009
   Copyright (c) 1982, 2002, Oracle Corporation. All rights
   reserved.


   Connected to:
   Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
   With the Partitioning option
   JServer Release 9.2.0.8.0 - Production
   SQL> Select Idx_Group LeafGrp,
               (Select Str_Name From APP_GRP_DESC Where Idx_Ind =
   Idx_Group) As AppGrpName,
               Idx_App,
               (Select Str_Name From APP_DESC Where Idx_Ind =
   Idx_App) As AppName
          From APP_GRP_APP_MEMBER
         Where Idx_App In ( Select Idx_App
                              From APP_GRP_APP_MEMBER
                             Group By Idx_App
                            Having Count(*) > 1 );


      LEAFGRP APPGRPNAME              IDX_APP APPNAME
   ---------- -------------------- ----------
   ----------------------------------------
          998 Sample3                49000033 Metric Diagnostic
   Report
          999 Sample4                49000033 Metric Diagnostic
   Report
   Determine the full path for the report group by executing the
   following query for each group found in the previous query. This
   query generates a simple ?stepped' output starting with the root
   node for the group. Each subsequent group is then indented two
   spaces. This information assists in determining the groups from
   which to remove the report.
   SQL> Select LPAD(' ', 2*(Rownum-1)) || Str_Name as AppGrpName
          From ( Select lvl, agd.Str_Name
                   From ( Select Level as Lvl, Idx_Group_Child
                            From APP_GRP_GROUP
                         Connect By Prior Idx_Group_Parent =
   Idx_Group_Child
                           Start With Idx_Group_Child = 999) agg,
                        APP_GRP_DESC agd
                  Where agg.Idx_Group_Child = agd.Idx_Ind
                  Order By agg.Lvl Desc);
   STR_NAME
   ------------------------------
   GST
     Sample4
   <----- End ---->
   Below, is the query used in the field by
   services.  There was a trigger that was
   defined that used the below query to check
   for duplicate reports.  During the upgrade,
   the above query/information was used, however
   no reports were found.
   When the query below was used duplicates were
   in fact found and were preventing the customer
   from using DV Navigator to save new reports.
   <---- Start ---->
   set serveroutput on;
   set linesize 9999;
   declare
      cursor cDupes is
      Select agd.Idx_Ind GroupId, Upper(dupes.Str_Name) ObjectName,
   Count(*) Count
    From (
    Select Idx_Group, aad.Str_Name
    From APP_APPL_GRP_MEMBER aagm,
    APP_APPL_DESC aad
    Where aagm.Idx_Appl = aad.Idx_Ind
    Union All
    Select Idx_Group, ad.Str_Name
    From APP_GRP_APP_MEMBER agam,
    APP_DESC ad
    Where agam.Idx_App = ad.Idx_Ind
    Union All
    Select Idx_Group, asd.Str_Name
    From APP_GRP_STYLE_MEMBER agsm,
    APP_STYLE_DESC asd
    Where agsm.Idx_Style = asd.Idx_Ind
    Union All
    Select Idx_Group_Parent Idx_Group, agd.Str_Name
    From APP_GRP_GROUP agg,
    APP_GRP_DESC agd
    Where agg.Idx_Group_Child = agd.Idx_Ind
    Order by Str_Name
    ) dupes,
    APP_GRP_DESC agd
    Where dupes.Idx_Group = agd.Idx_Ind
    Group By agd.Idx_Ind, Upper(dupes.Str_Name)
    Having Count(*) > 1;
    vGroupidOrig varchar2(2000);
    vGroupidLookup varchar2(2000);
    vGroupPath varchar2(2000);
    vGroupName varchar2(2000);
    vStrName varchar2(2000);
    nCount number;
   begin
    open cDupes;
    fetch cDupes into vGroupidLookup, vStrName, nCount;
    while cDupes%FOUND loop
              vGroupidOrig := vGroupidLookup;
       select str_name into vGroupName from app_grp_desc where
   idx_ind = vGroupidLookup;
       vGroupPath := vGroupName || '~' || vStrName;
       while  ( vGroupidLookup != 20 ) loop
          select idx_group_parent into vGroupidLookup from
   app_grp_group where idx_group_child = vGroupidLookup;
          select str_name into vGroupName from app_grp_desc where
   idx_ind = vGroupidLookup;
          vGroupPath :=  vGroupName || '~' || vGroupPath;
       end loop;
     dbms_output.put_line(vGroupidOrig || vGroupPath);
          fetch cDupes into vGroupidLookup, vStrName, nCount;
    end loop;
    close cDupes;
   end;
   /

Local fix

   The Local fix was to use the below
   query to find the duplicate reports
   so that they could be removed.
   set serveroutput on;
   set linesize 9999;
   declare
      cursor cDupes is
      Select agd.Idx_Ind GroupId, Upper(dupes.Str_Name) ObjectName,
   Count(*) Count
    From (
    Select Idx_Group, aad.Str_Name
    From APP_APPL_GRP_MEMBER aagm,
    APP_APPL_DESC aad
    Where aagm.Idx_Appl = aad.Idx_Ind
    Union All
    Select Idx_Group, ad.Str_Name
    From APP_GRP_APP_MEMBER agam,
    APP_DESC ad
    Where agam.Idx_App = ad.Idx_Ind
    Union All
    Select Idx_Group, asd.Str_Name
    From APP_GRP_STYLE_MEMBER agsm,
    APP_STYLE_DESC asd
    Where agsm.Idx_Style = asd.Idx_Ind
    Union All
    Select Idx_Group_Parent Idx_Group, agd.Str_Name
    From APP_GRP_GROUP agg,
    APP_GRP_DESC agd
    Where agg.Idx_Group_Child = agd.Idx_Ind
    Order by Str_Name
    ) dupes,
    APP_GRP_DESC agd
    Where dupes.Idx_Group = agd.Idx_Ind
    Group By agd.Idx_Ind, Upper(dupes.Str_Name)
    Having Count(*) > 1;
    vGroupidOrig varchar2(2000);
    vGroupidLookup varchar2(2000);
    vGroupPath varchar2(2000);
    vGroupName varchar2(2000);
    vStrName varchar2(2000);
    nCount number;
   begin
    open cDupes;
    fetch cDupes into vGroupidLookup, vStrName, nCount;
    while cDupes%FOUND loop
              vGroupidOrig := vGroupidLookup;
       select str_name into vGroupName from app_grp_desc where
   idx_ind = vGroupidLookup;
       vGroupPath := vGroupName || '~' || vStrName;
       while  ( vGroupidLookup != 20 ) loop
          select idx_group_parent into vGroupidLookup from
   app_grp_group where idx_group_child = vGroupidLookup;
          select str_name into vGroupName from app_grp_desc where
   idx_ind = vGroupidLookup;
          vGroupPath :=  vGroupName || '~' || vGroupPath;
       end loop;
     dbms_output.put_line(vGroupidOrig || vGroupPath);
          fetch cDupes into vGroupidLookup, vStrName, nCount;
    end loop;
    close cDupes;
   end;
   /