Accessing Error Logs to See Build Problems and Update Problems with Cubes

I tried using the DeepSee Troubleshooting guide but the suggestions weren't working.  Let's say that the source data we are using to build the cube on has a value out of range. This would cause the cube build/update to fail. How do I see the error log that explains which field has the value out of range? Please be detailed on exactly what command I should enter and where I should enter it in.

I assume that I go into a terminal session and to the correct namespace that we are building/updating the cube on, but the DeepSee Troubleshooting guide doesn't give that detail. I also tried the commands described in the Troubleshooting guide but I got syntax errors for almost every one. 

  • 0
  • 0
  • 257
  • 4
  • 1

Answers

Hi Ryan,

 

In reference to the  Troubleshooting Guide -> Build Problems -> Errors During Build -> Check ^DeepSee.BuildErrors/ run ##class(%DeepSee.Utils).%PrintBuildErrors(pCube) are two options for this case. To check ^DeepSee.BuildErrors, you can either use the Management Portal's Global Explorer page or you can use terminal. This global will be populated with the error messages that are caused as well as the ID of the record that caused this error. Using ##class(%DeepSee.Utils).%PrintBuildErrors(pCube) will also show the same error messages in a more user-friendly way.

 

Here is an Error that I forced:

SAMPLES>d ##class(%DeepSee.Utils).%PrintBuildErrors("HoleFoods")
    1   Source ID: 2
        ERROR #5002: Cache error: <VALUE OUT OF RANGE>%UpdateFacts+107^HoleFoods.Cube.Fact.1
 
1 build error(s) for 'HoleFoods'

 

From this output I can see that ID 2 had a Value Out Of Range error on %UpdateFacts+107^HoleFoods.Cube.Fact.1 line of code. At this point I can look into this line of code and figure out why it is out of range. My line of code reads as

 Set %var("Mx3501588378B") = $S(%source("%ID")=2:$ZD(99282828),%source("UnitsSold")="":"",%source("UnitsSold")>5:1,1:0)

We can see that the expression I wrote will cause an error when Source ID 2 is built. In a more realistic situation, it may be harder to determine why this line of code caused the error. This line of code is either generated by DeepSee or it is a user defined source expression. As always, if you are not sure how to determine the cause of the error past retrieving the error message, the DeepSee support team is available 24/7. But accessing this error message is always a helpful first step

I think the easiest way to check the build errors is to do it in Management Portal in the Global explorer. You don't need to deal with Syntax Errors and typing the correct command. Much easier than doing it in Terminal, especially for those of us who have less familiarity with Cache. 

Comments

Hello Ryan,

I just wanted to add that we plan on extending the DeepSee Troubleshooting Guide and add more use cases and details about each scenario.  This should clarify each case and have the complete commands that need to be executed.

For example, instead of writing:

run ##class(%DeepSee.Utils).%PrintBuildErrors(pCube)

we will write something like:

run the following commands in Caché Terminal:

do ##class(%DeepSee.Utils).%PrintBuildErrors("ReplaceWithYourCubeName")

Sincerely,

Asaf Sinay
DeepSee Support Manager | InterSystems 
Support (Main): +1.617.621.0700  
InterSystems.com

 

Asaf, Thanks. I think that would be a very good update to the Troubleshooting Guide. 

I think the easiest way to check the build errors is to do it in Management Portal in the Global explorer. You don't need to deal with Syntax Errors and typing the correct command. Much easier than doing it in Terminal, especially for those of us who have less familiarity with Cache.