locked
Dashboard Designer - cube browsing error with large named set RRS feed

  • Question

  • I'm currently working on a SharePoint 2010 RTM environment, using Dashboard Designer against an Analysis Services 2008 R2 cube.  After adding some rather large named sets to the cube, I started encountering errors in Dashboard Designer.  The deployed dashboards still functioned correctly, the below issues were only encountred in Dashboard Designer when trying to modify already deployed objects.

    The named set I created was a very simple set -- just a list of product numbers -- but it was very large; about 300 products total.  This set, when saved as text, totalled to about 12kb of information.  This fact will become important later.  After deploying my cube with this new, very large set, any action in Dashboard Designer that required cube browsing failed with a simple error of "An unexpceted error as occured. Please contact an administrator for further information".  Looking in the Application Event log, I was able to find the correct log entry for the error message.  I've pasted the first section of the stack trace below; highlighting several important nuggets.

    By looking at the stack trace, I was able to deduce that there is an 8kb limit (noted by the (8192) XML byte limit) on named sets in the cube.  I was able to confirm my suspicision by commenting out my very large set and redeploying the cube.  Testing the newly deployed cube in Dashboard Designer worked perfectly, I was able to browse the cube.  Re-adding my large set recreated the issue.  For now I ended up removing items from my set until I was below the 8kb threshold, I was able to get my cube deployed into a test environment and present a demo.  However, I am curious if anyone else has experienced this issue, and if so, what workarounds have been implmented.  Also, I would like to find out if there is any intention of increasing this limit to allow Dashboard Designer to handle cubes with large named sets.

    See below for the stack trace of the error encountered with the large named set included in the cube.

    An unexpected error occurred.  Error 6559.

     

    Exception details:

    System.ServiceModel.CommunicationException: Error in deserializing body of reply message for operation 'GetCubeMetaDataForDataSource'. ---> System.InvalidOperationException: There is an error in XML document (1, 114069). ---> System.Xml.XmlException: The 'maximum bytes per Read operation' quota (8192) has been exceeded while reading XML data. Long element start tags (consisting of the element name, attribute names and attribute values) may trigger this quota. This quota may be increased by changing the MaxBytesPerRead property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 114069.

       at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)

       at System.Xml.XmlUTF8TextReader.ReadAttributes()

       at System.Xml.XmlUTF8TextReader.ReadStartElement()

       at System.Xml.XmlUTF8TextReader.Read()

       at System.Xml.XmlBaseReader.ReadEndElement()

       at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIBIMonitoringServiceApplication.Read134_NamedSet(Boolean isNullable, Boolean checkType)

       at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIBIMonitoringServiceApplication.Read135_Cube(Boolean isNullable, Boolean checkType)

       at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIBIMonitoringServiceApplication.Read215_Item()

       at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer56.Deserialize(XmlSerializationReader reader)

       at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)

       --- End of inner exception stack trace ---

       at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)

       at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)

       at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest)

       --- End of inner exception stack trace ---

     

    • Moved by Anjali Ch -MSFT Friday, August 13, 2010 4:49 PM Routing To Performance Point (From:SharePoint 2010 - General Questions and Answers)
    Thursday, August 5, 2010 6:42 PM

Answers

  • I've had similar issues to this when using SSL -- adjusting the uploadReadAheadSize fixed the issue (system.webServer/serverRuntime/uploadReadAheadSize: 49,152 (default value) --> bumped up to 2,147,483,647 (maximum value))

    It's due to a complication with the protocol interrupting the stream.

    Hope this helps.

    Cheers,
    Rod.


    Rod Colledge, SQL Server MVP | www.rodcolledge.com | www.sqlcrunch.com
    Tuesday, November 9, 2010 10:48 PM
  • Hello,
    We have also seen maxing out the following values in web.config also assists with this error:

    To resolve this issue, change the values of the parameters listed below to a larger value. We recommend that you double the value and then run the query to check whether the issue is resolved. To do this, follow these steps:

    1. On the SharePoint 2010 server, open the Web.config file. The file is located in the following folder:
      \Program Files\Microsoft Office Servers\14.0\Web Services\PpsMonitoringServer\
    2. Locate and change the the below values from 8192 to 16384.
    3. Open the Client.config file. The file is located in the following folder:
      \Program Files\Microsoft Office Servers\14.0\WebClients\PpsMonitoringServer\
    4. Locate and change the below values from 8192 to 16384.
    5. After you have made the changes, restart Internet Information Services (IIS) on the SharePoint 2010 server.

    <readerQuotas

                  maxStringContentLength="2147483647"

                  maxNameTableCharCount="2147483647"

                  maxBytesPerRead="2147483647"

                  maxArrayLength="2147483647"

                  maxDepth="2147483647" />


    Thanks
    Heidi Tr - MSFT

     


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
    Thursday, November 18, 2010 9:35 PM

All replies

  • Hello, same config as above, when returning a large list of Dimensions

    An unexpected error occurred. Error 6559. Exception details: System.ServiceModel.CommunicationException: Error in deserializing body of reply message for operation 'GetCubeMetaDataForDataSource'. ---> System.InvalidOperationException: There is an error in XML document (1, 110628). ---> System.Xml.XmlException: The 'maximum bytes per Read operation' quota (8192) has been exceeded while reading XML data. Long element start tags (consisting of the element name, attribute names and attribute values) may trigger this quota. This quota may be increased by changing the MaxBytesPerRead property on the XmlDictionaryReaderQuotas object used when creating the XML reader. Line 1, position 110628.

    at System.Xml.XmlExceptionHelper.ThrowXmlException(XmlDictionaryReader reader, String res, String arg1, String arg2, String arg3)

    at System.Xml.XmlUTF8TextReader.ReadAttributes()

    at System.Xml.XmlUTF8TextReader.ReadStartElement()

    at System.Xml.XmlUTF8TextReader.Read()

    at System.Xml.XmlBaseReader.ReadEndElement()

    at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIBIMonitoringServiceApplication.Read134_NamedSet(Boolean isNullable, Boolean checkType)

    at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIBIMonitoringServiceApplication.Read135_Cube(Boolean isNullable, Boolean checkType)

    at Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderIBIMonitoringServiceApplication.Read215_Item()

    at Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer56.Deserialize(XmlSerializationReader reader)

    at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) -

    -- End of inner exception stack trace ---

    at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)

    at System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle)

    at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest) -

    -- End of inner exception stack trace --- Server stack trace:

    at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, XmlSerializer serializer, MessagePartDescription returnPart, MessagePartDescriptionCollection bodyParts, Object[] parameters, Boolean isRequest)

    at System.ServiceModel.Dispatcher.XmlSerializerOperationFormatter.DeserializeBody(XmlDictionaryReader reader, MessageVersion version, String action, MessageDescription messageDescription, Object[] parameters, Boolean isRequest)

    at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeBodyContents(Message message, Object[] parameters, Boolean isRequest)

    at System.ServiceModel.Dispatcher.OperationFormatter.DeserializeReply(Message message, Object[] parameters)

    at System.ServiceModel.Dispatcher.ProxyOperationRuntime.AfterReply(ProxyRpc& rpc)

    at System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime operation, ProxyRpc& rpc)

    at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)

    at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)

    at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) Exception rethrown

    at [0]:

    at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)

    at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)

    at Microsoft.PerformancePoint.Scorecards.IBIMonitoringServiceApplication.GetCubeMetaDataForDataSource(DataSource dataSource)

    at Microsoft.PerformancePoint.Scorecards.BIMonitoringServiceApplicationProxy.<>c__DisplayClass55.<GetCubeMetaDataForDataSource>b__54(IBIMonitoringServiceApplication channel)

    at Microsoft.PerformancePoint.Scorecards.BIMonitoringServiceApplicationProxy.ExecuteOnChannel(CodeBlock codeBlock)


    hobby gps
    Tuesday, November 9, 2010 8:11 PM
  • I've had similar issues to this when using SSL -- adjusting the uploadReadAheadSize fixed the issue (system.webServer/serverRuntime/uploadReadAheadSize: 49,152 (default value) --> bumped up to 2,147,483,647 (maximum value))

    It's due to a complication with the protocol interrupting the stream.

    Hope this helps.

    Cheers,
    Rod.


    Rod Colledge, SQL Server MVP | www.rodcolledge.com | www.sqlcrunch.com
    Tuesday, November 9, 2010 10:48 PM
  • Hello,
    We have also seen maxing out the following values in web.config also assists with this error:

    To resolve this issue, change the values of the parameters listed below to a larger value. We recommend that you double the value and then run the query to check whether the issue is resolved. To do this, follow these steps:

    1. On the SharePoint 2010 server, open the Web.config file. The file is located in the following folder:
      \Program Files\Microsoft Office Servers\14.0\Web Services\PpsMonitoringServer\
    2. Locate and change the the below values from 8192 to 16384.
    3. Open the Client.config file. The file is located in the following folder:
      \Program Files\Microsoft Office Servers\14.0\WebClients\PpsMonitoringServer\
    4. Locate and change the below values from 8192 to 16384.
    5. After you have made the changes, restart Internet Information Services (IIS) on the SharePoint 2010 server.

    <readerQuotas

                  maxStringContentLength="2147483647"

                  maxNameTableCharCount="2147483647"

                  maxBytesPerRead="2147483647"

                  maxArrayLength="2147483647"

                  maxDepth="2147483647" />


    Thanks
    Heidi Tr - MSFT

     


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
    Thursday, November 18, 2010 9:35 PM
  • Hey Heidi,

    We run SP 2010 and have made the changes you describe, but we still receive the same error. Most importantly, the error continues to state that the MaxBytesPerRead property is set to 8192. This indicates that our changes have no effect and that the service is depending on a configuration that we have not touched. We edited configurations all the way up to the farm level with no effect. I noticed in a different forum that you recommend changing an "app.config" file behind PPS. Where is this file?

    Monday, September 24, 2012 6:07 PM
  • Had the same error as the OP.  What fixed it was changing this file (which is NOT the ones suggested earlier):

    \Common Files\Microsoft Shared\Web Server Extensions\14\WebClients\PpsMonitoringServer

    I changed it to 64MB from the original 8MB for both http and https binding sections.  Didn't touch any other files or change any other numbers.

                  maxBytesPerRead="65536"

    Friday, April 5, 2013 9:11 PM