<div dir="ltr">Hey Paul,<div><br></div><div>I'm just back in town after a customer visit last week and my work laptop is on the blink ... so I've just started taking a look at this issue  ... </div><div><br></div><div>I haven't run through the installation steps yet, but I have noticed that there are no "standard seaside tests" for ZnZincStreamingServerAdaptor or WAGsZincStreamingServerAdaptor (?) so it may not be surprising that things aren't working correctly ... do you happen to know if there are some tests in Pharo for the streaming adaptors?</div><div><br></div><div>Looking at git history it looks like Max Leske added the WAGsZincStreamingServerAdaptor back in 2018 ... </div><div><br></div><div>It seems I have never worked with that code, so it will take a bit of time for me to get familiar with how things are hooked up internally and figure out how transactions should be handled, since that seems to be the crux of the issues .. </div><div><br></div><div><br></div><div>Sooo, a test or two would certainly speed things up for me ...</div><div><br></div><div>Dale</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 20, 2022 at 9:55 PM PAUL DEBRUICKER via Glass <<a href="mailto:glass@lists.gemtalksystems.com" target="_blank">glass@lists.gemtalksystems.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Dale, <br>
<br>
In order to be more compliant with HTTP/2 and HTTP/3 I'm messing around with streaming HTTP/1.1 responses from Seaside.  There are some classes there to do it and it works in Pharo but not GemStone because a new session is made with each request.  <br>
<br>
I made an issue (<a href="https://github.com/SeasideSt/Seaside/issues/1317" rel="noreferrer" target="_blank">https://github.com/SeasideSt/Seaside/issues/1317</a>) and am trying to understand whats happening.  <br>
<br>
It looks like the code is identical between the streaming and non-streaming (WAGsZincServerAdaptor) adaptors.  The non-streaming adaptor works great/normally.  The streaming adaptor definitely streams the responses<br>
<br>
But for the streaming adaptor, the response "exits" the transaction mutex's #critical: block in GRGemStonePlatform>>#seasideProcessRequestWithRetry:resultBlock: before actually processing the request so the majority of the work is done outside a transaction.  <br>
<br>
The streaming adaptor uses a ZnDeferredResponse to hold a block processes the request when the reponse begins being written by the WAComboResponse.  I think thats when the request is processed at least.<br>
<br>
Anyway,  any ideas how to get the request processed inside a transaction using the zinc streaming adaptor?  <br>
<br>
<br>
Thanks<br>
<br>
Paul<br>
_______________________________________________<br>
Glass mailing list<br>
<a href="mailto:Glass@lists.gemtalksystems.com" target="_blank">Glass@lists.gemtalksystems.com</a><br>
<a href="https://lists.gemtalksystems.com/mailman/listinfo/glass" rel="noreferrer" target="_blank">https://lists.gemtalksystems.com/mailman/listinfo/glass</a><br>
</blockquote></div>