IBIS-Q System Documentation - Troubleshooting
General Troubleshooting StepsFor a query to run there are two applications involved each with multiple points of failure. Assuming that both applications have been properly installed, the two areas for content managers to troubleshoot are:
- The View System's module file(s),
- The backend IBIS-Q CGI SAS interface.
To troubleshoot a query module problem , run query and from the result page click on "Show XML" and find <QUERY_APPLICATION_URL>. Copy and paste this URL to your browser window. To check reported problems, start with the following procedure:
If you can NOT run your query module without getting a general error, you can modify the URL to show the current module XML. This is done by simply replacing the "builder" or "result" portion of the URL to "confirugation" and then changing the ".html" to ".xml"
- Check for malformed XML code - use an XML aware editor (like XMLSpy, Notepad++, Aioob)
- Make sure all element tags are properly nested and "opened/closed"
- Validate the XML structure using the "query_module.xsd" file with an XML editor - may not produce an error in display (just a good idea)
- Check spelling, sense and grammar of all text displayed
- Make sure cfg, func, map, head, tail, and grp files are in the same folder and that the module file has the correct path to the cfg file.
- "ibis:include" (xinclude) statements match the path and file name
- Selection file
- <NAME> = name used by left nav
- <LOCAL_URL> = query/builder/(directory)/(Name of module file)/ (<CONFIGURATION><NAME> in module file).html
- Module file
- <PARAMETER><NAME>config</NAME><VALUE> (path and name of configuration file) </VALUE></PARAMETER>
- XMLResponse.head and XMLResponse.tail = file names in same location as configuration file
- <MEASURE><NAME> = first word on all lines in XML Element Output Value Mapping file
- <MEASURE>data tags (numerator, etc) = names in XML Element Output Value Mapping file.
- <DIMENSION_NAME> = name_html in configuration file = <DIMENSION><NAME>
- <DIMENSION><VALUE> = value in data
- <PARAMETER><NAME>func</NAME><VALUE>(Name) = Name of function file
- Function files
- Make sure the data format is correct (<XSLT_FORMAT_PATTERN> tag in module file can be used)
- Check sas code to make sure it outputs data correctly with no errors. Set sas=2 in the <QUERY_APPLICATION_URL> (accessed through the result page).
- Check configuration file to make sure the right variable type is listed
- Tag values cannot contain >, < or &, use > < and & instead. Also, some tags will not allow " or ' in them.
Solutions start from the result page, click on "Show XML" and find <QUERY_APPLICATION_URL>. Set sas=2 to see SAS log (if needed).
|Module page does not display||Check that the xml is well-formed. Aioob or other xml editors have tools that will check your xml. In the measure selection file make sure <LOCAL_URL> = query/builder/(directory)/(Name of module file)/(<CONFIGURATION><NAME> in module file).html|
|Navigation path or measure name does not appear on confirmation screen||In the measure selection file make sure <LOCAL_URL> = query/builder/(directory)/(Name of module file)/(<CONFIGURATION><NAME> in module file).html. If they do not match, then all steps and options in that module.xml file will be displayed.|
|Data do not appear on results page, or only default data appear.||See page from <QUERY_APPLICATION_URL>
|Incorrect filter label on Confirmation page or results page||Make sure <DIMENSION_NAME> = name_html in configuration file = <DIMENSION><NAME>, must be exactly the same, case sensitive.|
|No Title Found. Value: ***||Make sure:
|Table is labeled, but blank||If xml has correct data, make sure <MEASURE><NAME> = first word on all lines in XML Element Output Value Mapping file, case sensitive.|
|Column labels are reversed on results page||Make sure order of output from function file = order in XML Element Output Value Mapping file.|
|Data totals or rates are inaccurate||Restrict years in data to those used in the query. Use 'data_where' or 'pop_where' in function file or module.xml file, or restrict dataset if all measures use the same data restriction.|
|All data are inaccurate.||Check SAS coding and that correct variables are used.|
|SAS log gives an error 45||When you run multiple large queries (like ED) the system can run out of allocated disk space and give an error 45. Set sas=2 to see SAS log. SAS log would say something like: ERROR: Write to WORK.TMP.DATA failed. File is full and may be damaged.|
|Results page says:
QueryModule. getResultGroupBy DimensionName - Could not find a matching result DIMENSION for the ROW_DIMENSION_NAME element. Dimension name value: Year
|Check that 'Year' is the correct variable and spelling in the xml file and the
If 'Year' is working correctly for other measures in the same xml file, check the SAS variable used in the function file to make sure it is spelled correctly.
|Results page says:
QueryModule. getResultGroupBy DimensionName - Could not find a matching result DIMENSION for the OTHER_DIMENSION_NAME element. Dimension name value: Gun
|Check to make sure the the dimension 'Gun' is in the configuration file and that is it spelled correctly.|
|Lines in the data list are all * or rows in the data list for values that were not listed on the query builder page.||It may be that there is no data for this particular value. If the value was not on the
query builder page then it needs to be excluded from the
function file so that it will not show up on
the results table. For example, if you are running a survey item and on the
query builder page it has 2003, 2005 and 2007, but on the results page it shows line for 2003,
2004, 2005, 2006 and 2007 with the lines for 2004 and 2006 showing all *.
If the survey question is only asked in odd years the
even years need to be excluded from the query builder page and from the
function file for that measure. The line in the
function file would be in the top section and
would look like this:
f data_where year&in&(2003,2005,2007)
|Duplicate filter rows on results page.||If the same name is used for two different selections then the system can pick it up twice
and it will show twice in the filters listed at the top of the resulst page. For example, in the
code below on line 4 the SELECTIONS tag is named MomRace and on line 15 the DIMENSION_NAME is also
named MomRace. If anything for MomRace is selected this duplicate name results in a duplicate
SELECTED_DIMENSION tag and a duplicate filter row on the results page. Deleting line 4, or renaming
line 4 if it is needed, will resolve the problem.
1 <SELECTION> 2 <TITLE>Race</TITLE> 3 <SELECTIONS> 4 <NAME>MomRace</NAME> 5 <DESCRIPTION>Filter by mother's race</DESCRIPTION> 6 <SELECTION_TYPE> 7 <LIST> 8 <SIZE>6</SIZE> 9 <MULTIPLE/> 10 </LIST> 11 </SELECTION_TYPE> 12 <SELECTION> 13 <TITLE>All races</TITLE> 14 </SELECTION> 15 <DIMENSION_NAME>MomRace</DIMENSION_NAME> 16 </SELECTIONS> 17 </SELECTION>
Note: Try to document problems as you encounter them, including your solutions.