Timeouts while consulting results


Overview

If you are experiencing timeouts or errors while attempting to view or work with your analysis results, especially for very large applications, this is likely due to the way in which your application is configured with regard to modules (the internal grouping of objects used by CAST Imaging). If your application contains only one single module then all the objects in your application are contained within that module. When CAST Imaging attempts to fetch results for certain features that rely on modules, it needs to fetch all the objects in the module: when there is only one module, this process can take a long time to complete and will sometimes fail due to exceeding an internal timeout threshold.

This issue usually manifests itself with the following UI error Failed to get graph data or Failed to get Transaction list:

On other occasions no error is returned and the UI simply fails to display the requested items, for example when looking at Cloud Maturity results no objects are displayed in the right panel:

Resolution

To resolve this issue, you can modify the timeout threshold as described below. On the machine on which your imaging-viewer service is installed, perform the following steps:

Step 1 - Update imagingservice.json / app.config

Locate the following file depending on your operating system:

%PROGRAMFILES%\CAST\Imaging\CAST-Imaging-Viewer\setup-config\imagingservice\imagingservice.json
/home/CAST/imaging-viewer/server/app.config

Edit the file and add a new line "LOGGER_TIMEOUT": with the time out value listed in seconds. If the line already exists, increase the value to your required setting. For example to set the time out to two minutes (120 seconds) add the following and then save the file. The example below is for Microsoft Windows, but the same is true for Docker via Linux:

{
    "APP_CONFIG": "C:\\ProgramData\\CAST\\Imaging\\CAST-Imaging-Viewer\\setup-config\\imagingservice\\app-config.json",
    "PORT": "9010",
    "NEO4J_USERNAME": "neo4j",
    "NEO4J_PASSWORD": "imaging",
    "NEO4J_BOLT_ENDPOINT": "127.0.0.1:7697",
    "NEO4J_IMPORT_PATH": "C:\\ProgramData\\CAST\\Imaging\\CAST-Imaging-Viewer\\Neo4jData\\import",
    "TOKEN": "D5ED6A406775FC71B8D2A978883E8ED4",
    "LOG_PATH": "C:\\Program Files\\CAST\\Imaging\\CAST-Imaging-Viewer\\logs\\",
    "LOG_LEVEL": "info",
    "AUDIT_TRAIL": true,
    "LOGGER_TIMEOUT": 120,
    "EUREKA_PORT": "8098",
    "EUREKA_HOST": "localhost",
    "SERVICE_HOST": "localhost",
    "SERVICE_NAME": "IMAGING",
    "FE_PORT": 8093
}

Step 2 - Update proxy.conf

Locate the following file depending on your operating system:

%PROGRAMFILES%\CAST\Imaging\CAST-Imaging-Viewer\nginx\proxy.conf
/home/CAST/imaging-viewer/server/nginx/conf/proxy.conf

Edit the file and add a new line proxy_read_timeout with the time out value listed in seconds. If the line already exists, increase the value to your required setting. For example to set the time out to two minutes (120 seconds) add the following and then save the file:

proxy_redirect     off;
proxy_set_header   Host $host;
proxy_set_header   X-Real-IP $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Host $server_name;
proxy_read_timeout 120s;

Step 3 - Restart services

Finally, restart the following services/containers to ensure your changes are taken into account:

Microsoft Windows Linux via Docker
  • CAST Imaging Viewer Backend
  • CAST Imaging Viewer Frontend
  • server