Bad Symbols in Dimension Members

by Admin19. May 2012 00:22

"Hexadecimal value 0x02, is an invalid character. Line 7, position 15413537".What shall you do if you got this message in the Business Analysis Tool?

The reason of getting this message is simple: in the database there exists an unreadable symbol (with code less than 0x20) in a column which is used as name for an attribute of a dimension. Business Analysis Tool is using Microsoft .NET XML parser, which doesn't understands symbols with codes below 0x20 and crashes when it tries to parse this XML.

The only way out is to fix the database and to get rid of those symbols. But the question is how to find WHERE this symbol is - in what table/column/row?

The answer can be found in this way. If you receive a log with such a message, in the attachment you should have a file Unzip this file. Download Far Manager and install it. Locate the extracted file MDDataSet.xml on disk and open it with F3 (file view).

This is an XML file, but somewhere inside there is an unreadable symbol. Press F7 in Far Manager:

Type in the hex code from your message (in my case this is "02", but in your case may be other – read the log), an press "Search". You will see this:

As you may notice, the unreadable symbol is almost invisible, but it is drawn on a different background.

Now the plan is next:

  • Find the row in the table by this member (member corresponds to a row, dimension – to a table).
  • Fix the data in this row – replace this symbol, and make sure it will not be inserted again to this table after next run of ETL (otherwise the problem will reoccur).
  • Reprocess dimension. You may use ProcessUpdate to keep the cube running (although, it will loose the aggregates, so you may run ProcessIndexes after that).
  • Refresh the data in the Business Analysis Tool report.

Sometimes there are cases when the file contain just a message "File size was too big. Size = 40.8Mb". What to do in this case?

The reason why you see this message is the fact that users are querying for too much data, and when the problem occurs – BAT is trying to upload problem information to the server. But since the zipped size of MDDataSet is too huge, it is impossible to upload every time such huge amount of megabytes. Therefore BAT is cutting it off in the case if zipped MDDataSet is above 5MB. What to do?

Look at the file that came in the log message. Open it with Notepad++, and format it using XML Tools plugin (it can be downloaded using Plugin Manager – go to menu "Plugins\Plugin Manager\Show Plugin Manager" in Notepad++). You will see this:

Now please run the admin module using command

BATAdmin.exe testmdx

It will run it with special debug mode tabs in each report – you will notice them. Create an empty report on the same cube, paste all XML data into tab "PageConfig: modified" and press "Apply", then refresh data on the page. You will see exactly the same error as the user got.

Now your task is to get the MDDataSet – the response from SSAS. It will be in the temp folder. One way to find this file is next:

  1. Run SysInternals Process Monitor and set up 2 filters like this:

  2. In BAT press "Refresh" on the page you have just created by making "copy/paste" of configuration.
  3. In Process Monitor you will see this:

This is your MDDataSet file – the contents which was returned from the SSAS server. Now you may open it using Far Manager with F3 and search for your bad symbol.

Another case is when you receive a log from BAT Scheduler Service. In this case you don't get MDDataSet.xml, however, you get full information about who is the user and what report he is opening:

What you need to do is to open the same report, same page under the same user in the report module. You will immediately get an error of the same kind, but this time it will be run from report module, so you will see a log. In the case if log will contain MDDataSet.xml with message "The file size is too big" – just do the steps with tracking the MDDataSet using SysInternals Process Monitor that are described above.

Add comment

  Country flag

  • Comment
  • Preview

About company

BIT Impulse - a software development company, a vendor of a proprietary BI system called "Business Analysis Tool".

Web site:


<<  September 2017  >>

View posts in large calendar