Description

 This page troubleshoots all the issues in CAST MS related to showing an 'empty module' Fatal error message.

When in the User defined module definition,click on Module Content overview to see the error message.

Observed in CAST AIP
Release
Yes/No
8.3.x(tick)
Observed on RDBMS
RDBMS
Yes/No
CSS(tick)
Action Plan
  1. Check if the issue is linked to Analysis : The analysis may have not created the objects. Check the analysis log file and check in Enlighten that the expected objects that should belong to the Module exist. You can also check this by Viewing the Analysis Unit Content as described in the documentation (for 8.1, you can go to this link for the documentation on this: Viewing Analysis Unit content).
    If you are on Oracle and the analysis log seems to be fine, but you get no content to view when trying to view the analysis unit content, then check this case: Analysis completed successfully on Oracle but Analysis unit content shows empty
     
  2. Modules contain only Internal Objects : check the objects that should have been selected by the module are external objects or generated files objects by running the queries that are described in the page : SQL Queries - CAST Knowledge Base - Queries on objects - How to check if objects are internal or external or generated from the application

  3. If the module has been configured to contain only ORACLE objects, then this could be configuration issue due to inconsistency between the .uaxdirectory and the instance file of the database. This inconsistency is due to manual changes done in the files which is not recommended. As you can see in the page DMT - Oracle > Dealing with Oracle Schemas that move from one Server to another or from one Instance to another, you must use a tool to rename instances. If you have manually changed the instance name and run the analysis, go the page Source Extractors - SQL PLSQL - Information - Steps to follow when the instance name is not correctly modified and analysis is done
     
  4. Check if the issue is linked to the Universal Analyzer metamodel configuration (if this empty module is associated with a custom Universal Analyzer technology).

    If the empty module is associated with a custom Universal Analyzer technology, then verify that the metamodel configuration is correct as described in the documentation : How to configure a language for the CAST Engineering Dashboard.

     

    The empty module here can be caused if the metamodel has been incorrectly configured so that the type defined as the technical project does not inherit from the category APM Modules (idcat 10501)


  5. Check the Module definition in CAST MS and see if the missing objects are in the scope of the definition. To check the Module configuration, refer to End User Guides > End-user application documentation > CMS - CAST Management Studio > CMS - CAST Management Studio - Infrastructure > CMS - CAST Management Studio - Editors > CMS - User Defined Module editor

  6. If the objects are analyzed and the modules are correctly defined, check the Module filter configuration by running the queries that are described in the page SQL Queries - CAST Knowledge Base - Queries on Module - Queries based on Module Filters

     

  7. If the above steps validate the module definition, run the below query to check the content of the technical module defined in the local database :

    SELECT  UDM.KeyNam,
    (SELECT ofn.FullName FROM ObjFulNam ofn WHERE ofn.IdObj=UDMi.IdKey) Full_Name,
    ( SELECT ots.ObjTypStr  FROM ObjTypStr ots WHERE ots.ObjTyp=UDMi.ObjTyp) Object_Type
    FROM    <KB_NAME>.APPSET s, <KB_NAME>.Keys UDM, <KB_NAME>.AnaJob j, <KB_NAME>.SETROOT r, <KB_NAME>.OBJSET o, <KB_NAME>.Keys UDMi
        WHERE s.IDSET = UDM.IdKey
        AND   s.IDJOB = j.IdJob
        AND   j.JobTyp   = 3001
        AND   UDM.ObjTyp = 20000
        AND   UDM.IdKey = r.IDSET
        AND   o.IDSET = r.IDROOT
        AND   o.IDOBJ != r.IDROOT
        AND   o.IDOBJ = UDMi.IdKey


    1. If no rows are displayed, the local database is corrupted, because either the objects are not attached to a technical project, or the project is not attached to the module. Many issues related to corruption have been fixed in the Local databases since the 8.0.2 and 8.1.1. We recommand to move to the latest version, and to run the analysis again to avoid those corruptions. If you cannot change the version of CAST AIP, move to next point.

    2. If rows are displayed, go to next point.

  8. If none of the previous steps resolve the issue, provide CAST Technical Support with the Relevant Input for CAST to investigate and to reproduce the issue.
Relevant customer's input

Relevant Input

  1. Sherlock output zip file. Option to select : Export Logs, Export Configuration Files, Export CAST Bases (Management Database, Central Database and Local Database).
  2. Screenshot showing the missing module / empty module in the Module content overview or Screenshot showing the missing modules / empty modules in Dashboard, with URL

Analysis completed successfully on Oracle but Analysis unit content shows empty

If your analysis has completed successfully on Oracle, but the Analysis unit content shows empty, then run the following queries on the local database and see if they return any rows:

SELECT   SUBSET_ID,
         COUNT(1)
FROM     PMC_SUBSETS
GROUP BY SUBSET_ID
HAVING   COUNT(1) > 1

SELECT   SUBSET_NAME,
         COUNT(1)
FROM     PMC_SUBSETS
GROUP BY SUBSET_NAME
HAVING   COUNT(1) > 1

If any rows are returned, then backup the local database, and then run the script attached here on the local Oracle database to resolve the issue: oracle_pmc_subsets_shrink.sql

After running this script, please redo the analysis and snapshot.

Impact of Empty modules

Impact of empty modules :

SNAPSHOT

If the "ignore empty modules" option has not been checked, if some modules are empty, the Snapshot process will stop as below.

DASHBOARD IMPACT

If some modules are empty, the metric results will be impacted at the application level

TCC IMPACT

If some modules are empty some transactions will be missing:

1.Datafunctions that should belong to the module will be missing, then, for the transaction ending with these Datafunction, the Function Point will be set to 0

2. Entry point / End point objects that belong to the empty module will not appear, then, the transaction will not be created.