My inclination is that if a query is taking > 10 minutes then its probably not 
query you want to perform.
i.e. it should be modified/optimized to run faster.
Could you share some details about the query ?  Possibly cut down on the number 
of iterations and run it through QC Profiler ?



-----------------------------------------------------------------------------
David Lee
Lead Engineer
MarkLogic Corporation
[email protected]
Phone: +1 812-482-5224
Cell:  +1 812-630-7622
www.marklogic.com<http://www.marklogic.com/>


From: [email protected] 
[mailto:[email protected]] On Behalf Of Mark Ferneau
Sent: Monday, March 25, 2013 9:28 AM
To: MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Time limit exceeded

Sini - I would expect that it is the default time limit - which is what you 
changed, if I read your earlier messages correctly.  Perhaps one of the other 
MarkLogicians can jump in here and help out.

On Mon, Mar 25, 2013 at 8:46 AM, sini narayanan 
<[email protected]<mailto:[email protected]>> wrote:
Yes Mark, even after making it to 3600, after 10 minutes it is throwing the 
exception.
This is the error message that is thrown. Each time, the error line number is 
different.
Is it the "max time limit" or the "default time limit", that needs to be 
changed?

<prop:properties xmlns:prop="http://marklogic.com/xdmp/property";>
  <cpf:processing-status 
xmlns:cpf="http://marklogic.com/cpf";>done</cpf:processing-status>
  <cpf:property-hash 
xmlns:cpf="http://marklogic.com/cpf";>d41d8cd98f00b204e9800998ecf8427e</cpf:property-hash>
  <cpf:last-updated 
xmlns:cpf="http://marklogic.com/cpf";>2013-03-25T13:26:42.435788+01:00</cpf:last-updated>
  <cpf:state 
xmlns:cpf="http://marklogic.com/cpf";>http://marklogic.com/states/error</cpf:state>
  <cpf:error xmlns:cpf="http://marklogic.com/cpf";>
    <error:error xsi:schemaLocation="http://marklogic.com/xdmp/error error.xsd" 
xmlns:error="http://marklogic.com/xdmp/error"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
      <error:code>XDMP-EXTIME</error:code>
      <error:name/>
      <error:xquery-version>1.0-ml</error:xquery-version>
      <error:message>Time limit exceeded</error:message>
      <error:format-string>XDMP-EXTIME: let $estimate := if ($results) then 
cts:remainder($results[1]) + $start - 1 else 0 -- Time limit 
exceeded</error:format-string>
      <error:retryable>false</error:retryable>
      <error:expr>let $estimate := if ($results) then 
cts:remainder($results[1]) + $start - 1 else 0</error:expr>
      <error:data/>
      <error:stack>
<error:frame>
 <error:uri>/MarkLogic/appservices/search/search-impl.xqy</error:uri>
 <error:line>1523</error:line>
 <error:column>21</error:column>

On Mon, Mar 25, 2013 at 4:53 PM, Mark Ferneau 
<[email protected]<mailto:[email protected]>> wrote:
Sini - can you tell me the specific error in the error log?

Also, I'm a bit confused - 3600 represents one hour of time.  I don't think one 
hour elapsed between the time I recommended changing the setting and the 
follow-up message.  It seems like it may be that the time limit that was 
changed is not the one that's causing the problem.

On Mon, Mar 25, 2013 at 5:52 AM, sini narayanan 
<[email protected]<mailto:[email protected]>> wrote:
Mark,
Even after changing the default time limit of the XDBC server from 600 to 3600, 
it is hitting the same exception.

Thanks,
Sini

On Mon, Mar 25, 2013 at 3:06 PM, Mark Ferneau 
<[email protected]<mailto:[email protected]>> wrote:
Sini - overall I believe that the timeout values are there to help clear out 
any "out of control" queries and release the resources they are taking up.  If 
this is a public-facing app server for which anyone could issue queries that 
may take this long - you may not want to increase the timeout.  From your 
original message, though, I don't expect that to be the case - so I expect you 
should be fine, i.e. without any real downside.

Note that none of what I've written is looking at the query/loop which you've 
posted - I'm only replying to the timeout issue.  I'll let others reply (as 
appropriate) to the query/loop.



On Mon, Mar 25, 2013 at 5:25 AM, sini narayanan 
<[email protected]<mailto:[email protected]>> wrote:
Hi Mark,

Thanks for your response.
But is it fine to change the timeout values for the app server. Will this cause 
any other performance issues?

Thanks,
Sini

On Mon, Mar 25, 2013 at 2:45 PM, Mark Ferneau 
<[email protected]<mailto:[email protected]>> wrote:
Sini -

Use the MarkLogic admin console to change the timeout values for the app server 
you are using.

On Mon, Mar 25, 2013 at 5:01 AM, sini narayanan 
<[email protected]<mailto:[email protected]>> wrote:
Hi All,

I have a search query which would return more than 30000 records.
I'm performing this search in an xqy module. Based on the search results, I'm 
inserting the uri of each search result (search:result//@uri) into a document.

ie: The final document will be as  below.
<Docuri>
   <uri val="/a/b/1.xml"/>
   <uri val="/a/b/2.xml"/>
   <uri val="/a/b/3.xml"/>
   ....
   ....
   <uri val="/a/b/30000.xml"/>
</Docuri>


But when I'm executing this through the pipeline, its throwing error "Time 
limit exceeded".
How do I resolve this?

Loop being executed is:

for $i in (1 to $no-of-pages)
   let $searchResults   := search:resolve($query, $options,$index,$pageSize)



Thanks,
Sini

_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general


_______________________________________________
General mailing list
[email protected]<mailto:[email protected]>
http://developer.marklogic.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to