<blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; ">
In the world of WS-BPEL, a transaction can take *days* or *weeks* to occur (imagine in reality, a product is back-ordered or you are waiting for M out of N vendors to respond). For the moment, let us put aside issue of what sort of underlying protocol is used. In these situations, you would want, after a certain amount of time, to pickle the tasklets that constitute the process and free up memory. When the message comes back in, depickle the tasklets and they will resume where they left off.<br>
</blockquote><div><br></div><div>Won&#39;t saving the data in a database be a better idea in this scenario.</div><div><br></div><div>--Rana Biswas</div><div><br></div><div><br><div class="gmail_quote">2009/3/26 Andrew Francis <span dir="ltr">&lt;<a href="mailto:andrewfr_ice@yahoo.com">andrewfr_ice@yahoo.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
Hi Kristjan:<br>
<br>
&gt; Is pickling really necessary?<br>
<br>
YES!<br>
<br>
In the world of WS-BPEL, some form of pickling is highly desirable (Microsoft and ODE Apache use the term - hydration).<br>
<div class="im"><br>
&gt;Can&#39;t you just have the tasklet sleeping, until a HTTP request comes back? &gt;You can put a tasklet to sleep by calling stackless.schedule_remove() or &gt;by calling receive() on a channel.<br>
<br>
</div>Having the tasklet block on a channel is fine if you expecting the transaction to end in a reasonable amount of time...<br>
<br>
In the world of WS-BPEL, a transaction can take *days* or *weeks* to occur (imagine in reality, a product is back-ordered or you are waiting for M out of N vendors to respond). For the moment, let us put aside issue of what sort of underlying protocol is used. In these situations, you would want, after a certain amount of time, to pickle the tasklets that constitute the process and free up memory. When the message comes back in, depickle the tasklets and they will resume where they left off.<br>

<br>
Then there is the case of the underlying computer going down...<br>
<br>
I would figure something like EVE-Online would pickle players and NPCs that are inactive.<br>
<br>
In the near future, I will need to write the code for this - so far I have little tests not a complete system. If people are interested, I can write and post an example.<br>
<div class="im"><br>
&gt; I can&#39;t see pickling being required unless you need to pass<br>
&gt; it to a different process.<br>
<br>
</div>That is highly useful too.<br>
<div><div></div><div class="h5"><br>
Cheers,<br>
Andrew<br>
<br>
<br>
<br>
<br>
<br>
<br>
_______________________________________________<br>
Stackless mailing list<br>
<a href="mailto:Stackless@stackless.com">Stackless@stackless.com</a><br>
<a href="http://www.stackless.com/mailman/listinfo/stackless" target="_blank">http://www.stackless.com/mailman/listinfo/stackless</a><br>
</div></div></blockquote></div><br></div>