GithubHelp home page GithubHelp logo

Comments (5)

julianhyde avatar julianhyde commented on May 28, 2024

We don't officially support IBM. Judging by that exception, you are the first person to try it. But there are a lot of similarities among XMLA providers, so it typically isn't a lot of work to get one working.

If you are comfortable writing java code, add an extra entry to the BackendFlavor enum and see if you get further.

Julian

from olap4j.

 avatar commented on May 28, 2024

OK, I added it and passed the exception. Now I got IOException.
When I debug code, 3 discover soap messages are sent and the results received successfully.

Next, this soap message is sent and an IOException is thrown (java.io.IOException: Server returned HTTP response code: 500 for URL: http://CubeXMLAServerIPHere:PortHere/IBMXmlAnalysis).

I tried this query in IBM's mdx command utility with xmla mode, it runs there without error.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
        <Command>
        <Statement>
           <![CDATA[
SELECT   { [Measures].[Products] } ON COLUMNS,   { [Time].[2004], [Time].[2005] , [Time].[2006] , [Time].[2007] } ON ROWS FROM [SalesCube] WHERE ( [Retailers].[Region].[Americas] )]]>
         </Statement>
        </Command>
        <Properties>
          <PropertyList>
            <Catalog>Cubing Services</Catalog>
            <DataSourceInfo>Local IBM InfoSphere Warehouse Cubing Services Server</DataSourceInfo>
            <Format>Multidimensional</Format>
            <AxisFormat>TupleFormat</AxisFormat>
          </PropertyList>
        </Properties>
</Execute>
</soapenv:Body>
</soapenv:Envelope>

EXCEPTION LINE ---------------------------------------------------------------------------------------------------------
XmlaOlap4jHttpProxy.getResponse(XmlaOlap4jServerInfos, String) line: 130
...
// Get the response, again assuming default encoding.
InputStream is = urlConnection.getInputStream(); <-- java.io.IOException: Server returned HTTP response code: 500 for URL: http://CubeXMLAServerIPHere:PortHere/IBMXmlAnalysis
...

from olap4j.

julianhyde avatar julianhyde commented on May 28, 2024

The problem is on the server. 500 means "internal error". Maybe there is more information in the server's log file.

Take a look at whether the HTTP request that the driver is sending is similar to the HTTP request that you are sending manually. If they were identical it's unlikely the server would give a 500. So, what is it about the driver's request that the server doesn't like?

Julian

from olap4j.

 avatar commented on May 28, 2024

Yes, trace file gives the correct problem. It complains about that EOF reached without SELECT or WITH.

The solution is that execute method content should not be embedded within CDATA as below:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
    xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
        <Execute xmlns="urn:schemas-microsoft-com:xml-analysis">
        <Command>
        <Statement>
SELECT {[Measures].[Products]} ON COLUMNS, {[Time].[2004],[Time].[2005],[Time].[2006],[Time].[2007]} ON ROWS FROM [SalesCube] WHERE ([Retailers].[Region].[Americas])
         </Statement>
        </Command>
        <Properties>
          <PropertyList>
            <Catalog>Cubing Services</Catalog>
            <DataSourceInfo>Local IBM InfoSphere Warehouse Cubing Services Server</DataSourceInfo>
            <Format>Multidimensional</Format>
            <AxisFormat>TupleFormat</AxisFormat>
          </PropertyList>
        </Properties>
</Execute>
</soapenv:Body>
</soapenv:Envelope>

I need such a fix for IBM BackendFlavor. In this case, CDATA's unparsed text ability will be lost and we may need to send some characters as escaped in query string like below (it would be better if escaping is done in olap4j):

> ------> &gt;
&  -----> &amp;

Thank you.

from olap4j.

julianhyde avatar julianhyde commented on May 28, 2024

Thanks. It sounds pretty clear what we need to do.

from olap4j.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.