1stpo...@gmail.com writes:
> ...
> I have another issue.  When I make the call to return data apparently the 
> result set is too big for suds and I get a MemoryError.
> Here is my code snippet:
>     print 'executing SQL Query:',len(logicalSQL)
> executionOptions={'async':False,'maxRowsPerPage':50,'refresh':True,'presentationInfo':False,'type':'Q1'}
>     XMLservice=obiclient.service['XmlViewService']
> result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
> When I run it I get:
> executing SQL Query: 5968
> Traceback (most recent call last):
>   File "C:\temp\obiee\obieetest.py", line 105, in <module>
> result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
>   File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
>   File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
>   File "build\bdist.win32\egg\suds\client.py", line 643, in send
>   File "build\bdist.win32\egg\suds\transport\https.py", line 64, in send
>   File "build\bdist.win32\egg\suds\transport\http.py", line 79, in send
>   File "C:\Python27\lib\socket.py", line 358, in read
>     buf.write(data)
> MemoryError: out of memory

There is not much "suds" can do with regard to this. In principle,
it could write to a temporary file - but its purpose is to present
the webservice result as a collection of Python objects - and
they, too, require memory in the same order.

Thus, you have the following options:

  *  learn how to limit the amount of data, the webservice provides
  *  give your system (its processes) more memory
  *  do not use "suds" but process the incoming data incrementally
     (avoiding the build of the intermediate collection of Python objects).


Reply via email to