Diagnosing Spectre Dives
The following are generic steps that you can take to help diagnose the cause of slow dives in a DivePort implementation.
-
Enable logging of dives.
dicfg -dataroot <path-to-dataroot> set boolean -name log_spectre_requests -value TRUE
-
Start a new DivePort session and perform the dive.
-
Find the corresponding DiveLine session log—it should show the dive that is running.
-
Pull out the dive that took so long, and save it into the project, for example in /temp/slow.dive.
-
Run the dive from a shell or command line with the --timing parameter. See Spectre Command Line Syntax. For example:
spectre dive --project <projectname> --dataroot <path-to-dataroot> /temp/slow.dive --timing
-
Look at the timing output for clues, and forward the output to Technical Support.
NOTE:
- Be sure you are using the recommended hardware including local SSD storage for cBases.
- When it comes to diving, the Spectre cache helps users who have the same effective access control.
- If you identify a particularly slow dive, you can cache that particular dive right after the build. See Spectre Cache Refresh Process Node.
- Use lookups in Builds rather than in cPlans. Lookups are done at run-time, whether needed or not, and could be the cause of a delay for end-users who are querying data through a cPlan.