Thanks Danny ! Now the concept is much clear to me .

Abhishek Srivastav
Tata Consultancy Services
Cell:- +91-9883389968
Mailto: [email protected]
Website: http://www.tcs.com
____________________________________________
Experience certainty.   IT Services
                        Business Solutions
                        Outsourcing
____________________________________________



From:
Danny Sokolsky <[email protected]>
To:
General MarkLogic Developer Discussion <[email protected]>
Date:
07/14/2011 11:41 PM
Subject:
Re: [MarkLogic Dev General] Async behavior of HTTP request
Sent by:
[email protected]



Hi Abhishek,
 
So it turns out the xdmp:http-gets will begin to evaluate asyncrounously. 
The sleeps that I put in that query forced them to block.  They key is if 
you need to use the response or not.  So this query does not wait for the 
http-gets to complete before logging in the return clause:
 
xquery version "1.0-ml";
xdmp:log("Req # 1"), xdmp:sleep(1000),
let $x := xdmp:http-get("http://marklogic.com";)
let $y := xdmp:http-get("http://marklogic.com";)
return
xdmp:log("Process completed")
 
I guess the question for you is do you need the query to use the output of 
the http-get.  If so, then you have to wait for it to complete in order to 
complete the x-action.
 
-Danny
 
From: [email protected] [
mailto:[email protected]] On Behalf Of Abhishek53 S
Sent: Thursday, July 14, 2011 12:45 AM
To: General MarkLogic Developer Discussion
Subject: Re: [MarkLogic Dev General] Async behavior of HTTP request
 

Danny 

Thanks for reply . Referring the link (
http://www.marklogicevents.com/file/presentations/Effective_XQuery_in_MarkLogic_Heitkamp_Koul.pdf
)  where on slide 36 it is mentioned that HTTP interfaces executes 
asynchronously. Let me know If  I misunderstood. 

Can It be possible to run child some transaction asynchronously. I am 
thinking of one way to achieve it where the child module is written into 
separate xqy file and then use xdmp:spawn  to invoke the module. In this 
case the parent transaction will not wait for the response from the 
spawned module. Let me know If I am wrong here. 

Any separate way to achieve the asynchronous child transaction? 

Thanks 
Abhishek Srivastav
Tata Consultancy Services
Cell:- +91-9883389968
Mailto: [email protected]
Website: http://www.tcs.com
____________________________________________
Experience certainty.        IT Services
                       Business Solutions
                       Outsourcing
____________________________________________ 


From: 
Danny Sokolsky <[email protected]> 
To: 
General MarkLogic Developer Discussion <[email protected]> 
Date: 
07/14/2011 06:27 AM 
Subject: 
Re: [MarkLogic Dev General] Async behavior of HTTP request 
Sent by: 
[email protected]
 




Hi Abhishek, 
  
I think the http-get requests are *synchronous*, not asynchronous; that 
is, they will wait until they get the results to move on to the next thing 
in the query.  So I am not sure I understand your question.  For example, 
if you run the following: 
  
let $x := (xdmp:http-get("http://marklogic.com";), xdmp:log("Req # 1"), 
xdmp:sleep(1000)) 
let $y := (xdmp:http-get("http://marklogic.com";), xdmp:log("Req # 1"), 
xdmp:sleep(1000)) 
return 
xdmp:log("Process completed") 
  
You will see 3 log messages in your log, and they will be about 1 second 
apart from each other. 
  
2011-07-13 17:53:48.395 Info: danny: Req # 1 
2011-07-13 17:53:49.462 Info: danny: Req # 1 
2011-07-13 17:53:50.462 Info: danny: Process completed 
  
-Danny 
  
From: [email protected] [
mailto:[email protected]] On Behalf Of Abhishek53 S
Sent: Wednesday, July 13, 2011 12:36 PM
To: General MarkLogic Developer Discussion
Subject: [MarkLogic Dev General] Async behavior of HTTP request 
  
Hi Folks, 
  
As per my understanding of HTTP request through Marklogic HTTP APIs is 
that they are asynchronous by nature.Between the HTTP service requests the 
behavior is asynchronous. 
  
Is the calling module execute asynchronously with invoked HTTP requests ie 
sample query 
  
let $x := xdmp:http-get($uri1,()) 
let $y := xdmp:http-get($uri2,()) 
return 
xdmp:log("Process completed") 
Can the logging be done irrespective to wait for the response from both 
the requests? 
  
Your suggestions will be appreciated. 
Thanks in advance 
Abhishek Srivastav 
Tata Consultancy Services
Cell:- +91-9883389968
Mailto: [email protected]
Website: http://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Outsourcing
____________________________________________ 
=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain 
confidential or privileged information. If you are 
not the intended recipient, any dissemination, use, 
review, distribution, printing or copying of the 
information contained in this e-mail message 
and/or attachments to it are strictly prohibited. If 
you have received this communication in error, 
please notify us by reply e-mail or telephone and 
immediately and permanently delete the message 
and any attachments. Thank you
_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general
_______________________________________________
General mailing list
[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