Unplanned
Last Updated: 16 Mar 2022 15:21 by ADMIN
Markus
Created on: 23 Nov 2018 13:39
Category: PivotGrid
Type: Feature Request
2
How to use XMLA-Error-Details?

I've bound the PivotGrid to a XMLA-WebService (with Mondrian as Backend).

In the Datasource I've defined the error-Function.

When PivotGrid requests Data and Mondrian runs an Exception, following XMLA is transferred:

<?xml version="1.0" encoding="ISO-8859-1"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" >
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
  <faultcode>SOAP-ENV:Server.00HSBE02</faultcode>
  <faultstring>XMLA Discover unparse results error</faultstring>
  <faultactor>Mondrian</faultactor>
  <detail>
    <XA:error xmlns:XA="http://mondrian.sourceforge.net">
      <code>00HSBE02</code>
      <desc>The Mondrian XML: Error in executeQuery. Stackdump follows. See SQL logfile for more info.&#13;&#10;Error Stack Dump, time : 22.11.2018 13:19:16&#13;&#10;   com.microsoft.sqlserver.jdbc.SQLServerException: Die Sachbearbeiter-Spalte wurde für &#39;Beschluss&#39; mehrmals angegeben.&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:216)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1515)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteCursored(SQLServerStatement.java:1879)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:766)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:689)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)&#13;&#10;&#9;at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeQuery(SQLServerStatement.java:616)&#13;&#10;&#9;at net.abit.base.support.StatementImpl.executeQuery(StatementImpl.java:504)&#13;&#10;&#9;at mondrian.rolap.SqlStatement.execute(SqlStatement.java:201)&#13;&#10;&#9;at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:350)&#13;&#10;&#9;at mondrian.rolap.RolapUtil.executeQuery(RolapUtil.java:303)&#13;&#10;&#9;at mondrian.rolap.SqlMemberSource.getMemberCount(SqlMemberSource.java:149)&#13;&#10;&#9;at mondrian.rolap.SqlMemberSource.getLevelMemberCount(SqlMemberSource.java:142)&#13;&#10;&#9;at mondrian.rolap.SmartMemberReader.getLevelMemberCount(SmartMemberReader.java:158)&#13;&#10;&#9;at mondrian.rolap.RolapSchemaReader.getLevelCardinality(RolapSchemaReader.java:320)&#13;&#10;&#9;at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&#13;&#10;&#9;at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&#13;&#10;&#9;at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&#13;&#10;&#9;at java.lang.reflect.Method.invoke(Method.java:498)&#13;&#10;&#9;at mondrian.rolap.RolapUtil$2.invoke(RolapUtil.java:111)&#13;&#10;&#9;at com.sun.proxy.$Proxy33.getLevelCardinality(Unknown Source)&#13;&#10;&#9;at mondrian.olap4j.MondrianOlap4jExtra.getLevelCardinality(MondrianOlap4jExtra.java:74)&#13;&#10;&#9;at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateDimension(RowsetDefinition.java:3970)&#13;&#10;&#9;at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateCube(RowsetDefinition.java:3915)&#13;&#10;&#9;at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateCatalog(RowsetDefinition.java:3897)&#13;&#10;&#9;at mondrian.xmla.RowsetDefinition$MdschemaDimensionsRowset.populateImpl(RowsetDefinition.java:3885)&#13;&#10;&#9;at mondrian.xmla.Rowset.populate(Rowset.java:201)&#13;&#10;&#9;at mondrian.xmla.Rowset.unparse(Rowset.java:173)&#13;&#10;&#9;at mondrian.xmla.XmlaHandler.discover(XmlaHandler.java:2903)&#13;&#10;&#9;at mondrian.xmla.XmlaHandler.process(XmlaHandler.java:676)&#13;&#10;&#9;at mondrian.xmla.impl.DefaultXmlaServlet.handleSoapBody(DefaultXmlaServlet.java:517)&#13;&#10;&#9;at mondrian.xmla.XmlaServlet.doPost(XmlaServlet.java:318)&#13;&#10;&#9;at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)&#13;&#10;&#9;at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)&#13;&#10;&#9;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)&#13;&#10;&#9;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)&#13;&#10;&#9;at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)&#13;&#10;&#9;at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)&#13;&#10;&#9;at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)&#13;&#10;&#9;at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)&#13;&#10;&#9;at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)&#13;&#10;&#9;at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)&#13;&#10;&#9;at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)&#13;&#10;&#9;at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:651)&#13;&#10;&#9;at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)&#13;&#10;&#9;at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)&#13;&#10;&#9;at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:498)&#13;&#10;&#9;at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)&#13;&#10;&#9;at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:796)&#13;&#10;&#9;at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1374)&#13;&#10;&#9;at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)&#13;&#10;&#9;at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)&#13;&#10;&#9;at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)&#13;&#10;&#9;at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)&#13;&#10;&#9;at java.lang.Thread.run(Thread.java:748)&#13;&#10;&#13;&#10;</desc>
    </XA:error>
  </detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

in Result the error-Parameter contains:

As you can see, the Details are missing. This wouldn't be worse - but additional xhr is away (null) - so manually parsing the result is impossible.

It should be possible to use message details - or having access to the complete Response (but xhr is not present).

0 comments