Section 12: Troubleshooting
This section provides an overview of the NetCharts Server debugging functions as well as a description of
potential trouble areas.
NetCharts Server provides three separate logs – the debug log, the message log, and the error log. These logs can be used to help identify and clarify development problems.
Debug Panel
The debug panel may be viewed by selecting the Debug link from the Developer Console’s control panel. The debug panel controls the output into the debug log and provides links to the log.
The debug panel allows the developer to specify the type of debug information that is desired. To see debug information, the developer would select the debug attribute, run the function that requires debugging, and then view the results by selecting the Show Log or Show Log (New Window) link.
The table below describes the meaning of each of the debug attributes.
Attribute | Debug Information |
ALL | Debugging On / All Messages |
LICENSE | License location and processing |
PARAM | Parameter parsing errors |
SERVER | Server specific issues, port requests, ACL, event scheduling, connection limits, and more.E |
JDBC | Java DataBase Connectivity (JDBC) information including driver, connections, SQL, and result sets. |
GRAPH | Graph rendering status and errors |
THREAD | Threading status and error messages |
CACHE | Internal file cache status and error messages. (Note: This does not report the NDS cache – use REMOTE for those messages). |
HTTP | HTTP Request/Response headers and status codes |
SECURITY | User authentication information |
REMOTE | Named Data Set (NDS) processing information and errors. |
When any of the debug attributes is activated, both the attribute and the ALL attribute will show as “ON”.
When debugging is turned on there are fairly significant performance “hits.” Debugging should be turned off in any production environment to maximize performance.
The error log can be viewed by selecting the Error Log link in the Developer Console’s control panel. The error log contains all messages written to “standard error”, a common reporting interface for programmatic errors. Since NetCharts Server is java-based, many error messages may be the result of stack traces requested by the program when an error occurs.
The message log is very similar to the error log, and can be viewed by selecting the Message Log link in the Developer Console’s control panel. The message log contains all messages written to “standard out”, a common reporting interface for routine programmatic information.
The following list describes some common error conditions or issues. Developers may also want to check the Release Notes available from the documentation homepage (accessible through the link on the top navigation panel) for other information.
Illegal DATE/TIME UNIT entry
This indicates a chart data parse error. Most charts will first check to see if numeric data is present. If not, then they will attempt to parse the data as a date/time element. If it still cannot be parsed, this error is thrown. If the element is a date but is not parsing, you or an Administrator may need to add a DateFormats attribute into the NetCharts Server Charting Engine Properties. See the NetCharts Server Administrators Guide for more details.
Chart Does Not Show Any Data
This is typically caused by the chart not having enough room to render correctly. This can happen if there are dynamic labels being displayed that use too much room. You can fix this by either making the chart bigger or making the label font smaller. If the problem is with the legend size, you can set the LegendBoxSize = (maxwidth, maxheight); so that the largest labels are clipped.
Multiple Charts Not Getting Unique Data
If multiple charts are sharing an NDS file and using variables to distinguish data sets, sometimes the caching mechanism will prevent each chart from getting its unique data. This problem can be solved by removing the cacheKey from the NDS file and CDL files, or by renaming the cacheKey so that it contains the variable name
Unexpected Sorting Results
In the NDS data retrieval process, sorting occurs after data retrieval but before row and column filtering. Therefore all data that exists in the selected rows is sorted, not just the column filtered data. You can use the rawRowFilter attribute to remove rows before sorting. You can also use the skipFirstRowSort and skipLastRowSort attributes to avoid common problems with column headings and/or totals.
Chart Can’t Show Aggregate Results
Sometimes when rendering a chart with an aggregation function like SUM, AVG, MIN, or MAX in an NDS file you may see errors like:
DataSet1: item(18): Expected NUMBER, found <SomeText>
This may be caused by the NDS file, or the CDL file’s NdsParams tag, including the aggregateLabel directive. If this attribute is defined, it will insert the given label in the first index of the result. Since the chart cannot process the text, the error is reported. Resolve this issue by removing this directive from the NDS file, or altering the NDS filter parameters in the chart.
URL-Encoded Data Producing Parameter Errors
Sometimes developers will encode data before passing it to a server for processing. If using the toolkits, this step is unnecessary and will cause errors since the toolkit does the encoding automatically.
Charts Using Data Cache PlugIn Not Getting Data or Getting Wrong Data
When a chart uses the data cache plugin to get its data, the cacheKey must be set to the same value by the code populating the cache as well as the .cdx/.ndx that requests the cache data. If the cacheKey is in the .ndx, ensure that it is not also in the .cdx NdsParams. If the cacheKey is in the .ndx, and the .ndx can be configured using NDS variables, make sure that the cacheKey uses the variable as part of its name.
Extra row of data when using NDS Pivot Function
If a single row is specified in the pivotDataColumns NDS parameter, all the data in the column specified will be used as the data. If the includeColumnNames NDS parameter is set to true, then the first value in the data column will be the column name, adding an additional data value, which adds a row. Change the value of the includeColumnNames value to “false”.
Getting JavaScript Errors like error:’skn’ is null or not an object
If this error, or a similar error, occurs when you include a dynamic chart in a page, ensure that the JavaScript code used for client side interactivity (popup/drilldown) is in the HTML <body> element, but not within a <table> or<div> element. The JavaScript is normally put into the page using the toolkit call getRolloverJavaScript().
Can’t Find Flat File in Project Using CSV Wizard
If you have uploaded a data file into the project, but the CSV wizard does not show the file in the dropdown, ensure that the file has an extension of .csv, .dat, .tab, .asc, or .txt.