Diagnosing Spectre Dives

The following are generic steps that you can take to help diagnose the cause of slow dives in a DivePort implementation.

  1. Enable logging of dives.

    dicfg -dataroot <path-to-dataroot> set boolean -name log_spectre_requests -value TRUE

  2. Start a new DivePort session and perform the dive.

  3. Find the corresponding DiveLine session log—it should show the dive that is running.

  4. Pull out the dive that took so long, and save it into the project, for example in /temp/slow.dive.

  5. 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

  6. 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.