Connect and discuss with the Denodo team and data management professionals and enthusiasts
Unable to obtain the data structure: stream closed
A newbie here. Been trying to setup an XML data source. Defined the url and authentication credentials etc but when I try to create a base view I get this error. Using the Get method. The same url works fine when I try it through a python script.
What could be making it do it?
Hi there,
It looks someone or something is closing the connection. This issue could be related with a firewall policy or a connectivity issue.
Check the logs in $Denodo_Home/logs/vdp to get more information about the error.
Hope this helps!
Well, everything I have been doing is happening inside firewalls. I am trying to access a sharepoint and creating an Excel data source. The authentication is NTLM. The url works fine in the browser.The proxy is also defined. Checked the log which really doesn't point to anything specific:-
693683226 [RMI(4818)-10.167.30.44-27] ERROR 20160219094724863 com.denodo.parser.connection.http.CommonsHttpClientConnection - java.io.IOException: Stream closed
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(Unknown Source)
at java.io.BufferedInputStream.available(Unknown Source)
at org.apache.commons.httpclient.ContentLengthInputStream.available(ContentLengthInputStream.java:213)
at java.io.FilterInputStream.available(Unknown Source)
at org.apache.commons.httpclient.AutoCloseInputStream.available(AutoCloseInputStream.java:143)
at com.denodo.parser.connection.http.CommonsHttpClientConnection.getEncodedInputStreamHolder(CommonsHttpClientConnection.java:422)
at com.denodo.parser.connection.http.CommonsHttpClientConnection.testConnection(CommonsHttpClientConnection.java:786)
at com.denodo.parser.connection.Route.testConnection(Route.java:91)
at com.denodo.vdb.util.introspectionservice.actions.TestRouteConnectionAction.testConnection(Unknown Source)
at com.denodo.vdb.interpreter.execution.TestConnectionAction.exec(Unknown Source)
at com.denodo.vdb.interpreter.execution.Action.run(Unknown Source)
at com.denodo.vdb.interpreter.execution.a.b.a(Unknown Source)
at com.denodo.vdb.interpreter.execution.a.b.a(Unknown Source)
at com.denodo.vdb.interpreter.execution.a.b.e(Unknown Source)
at com.denodo.vdb.interpreter.execution.Action.start(Unknown Source)
at com.denodo.vdb.interpreter.execution.ExecutionEngine.execute(Unknown Source)
at com.denodo.vdb.vdbinterface.server.QueryExecutorImpl.executeStatement(Unknown Source)
at com.denodo.vdb.vdbinterface.server.QueryExecutorImpl.executeStatement(Unknown Source)
at sun.reflect.GeneratedMethodAccessor82.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at sun.rmi.transport.Transport$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Any clue?
Thanks
Hi there,
According to you last comment, you are using a proxy to access your Sharepoint. Currently Denodo Platform does not support NTLM authentication in HTTP proxies, but you can try this workaround:
When configuring the data source, instead of using HTTP Client, use "Denodo Browser Client" and add a sequence similar to:
'sequence://navigate(about:config?JSBrowser.ENABLE_HTTP_PREEMPTIVE_AUTH=0,0);SetProxyAuthInfo(login\@proxy_url:port,encrypted:password,NTLM:domain);navigate(about:config?JSBrowser.MIME_TYPES=*,0);Navigate(http://json_or_xml_or_df_url,1);
The first ENABLE_HTTP_PREEMPTIVE_AUTH may not be needed. The password can be encrypted using ITPilot and other NSEQL commands can be used instead of navigate such as PostData
Hope this helps!
Well, it appears like you are talking about an option I don't see in the Express version of the tool. You also mention itPilot which is not an option in Denodo Express (greyed out).. I have a script in python that works flawlessly with sharepoint and it is only 10 lines of code. Also, is there a way to incorporate an output from an external script as a data source in Denodo but without the multiple independent steps?
I have another question. Some systems work with tokens after the initial basic authnetication. How would you work with Tokens in Denodo? Any provision to work with global variables?
Denodo supports oauth and oauth2 protocols that involve tokens. I'd need more information about the protocol you want to use and its tokens.
Regarding the global variables in VDP, you can check the Advanced VQL Guide, section "ADDING VARIABLES TO SELECTION CONDITIONS (GETVAR AND SETVAR)".
Regards
You have stated 'Currently Denodo Platform does not support NTLM authentication in HTTP proxies'. Would that mean if I disabled proxy it should work? I have tried that as well but I get the same error. How much of a difference would I find in the Express version as opposed to the full blown Enterprise tool? I do see some features have been disabled in the Express version.