Hi,<br>I have an ajax application that is composed by :<br>1) An ajax client which is a web page with a button that calls a zope object&#39;s method, say &quot;toutCompter&quot;.<br>2)
An ajax server (zope), with a zope object that has the method
&quot;toutCompter&quot; (all zope object methods are XMLRPC callable right ?).
<br><br>I use two browsers on two separate machines. I call the
methode on the two browsers, and compares the zope trace and strace
output of the network activity. The problem is that zope says he sends
data but strace don&#39;t, and zope says he receives data and again strace
don&#39;t. <br><br>This is the zope/python code that prints to the console :<br>&lt;zope/python&gt;<br>&nbsp;&nbsp;&nbsp; def toutCompter(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;<br>&nbsp;&nbsp; &nbsp;this method is called via XMLRPC.<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;&quot;&quot;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IPAdresse&nbsp; = self.REQUEST[&quot;REMOTE_ADDR&quot;]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;ip:&quot;,IPAdresse,&quot;requests counting of lines&quot;,self.getForm(&#39;min&#39;),&quot;to&quot;,self.getForm(&#39;max&#39;) <br>&nbsp;&nbsp; &nbsp;... #some processing here. creation of XMLData
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print &quot;sending results to &quot;+IPAdresse<br>&nbsp;&nbsp; &nbsp;return XMLData<br>&lt;/zope/python&gt;<br><br><br>Zope says :<br><br>&lt;zope traces to the console&gt;<br>ip: <a href="http://10.75.49.155/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.155</a>
 requests counting of lines 10 to 20<br>ip: <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51</a> requests counting of lines 10 to 20<br>sending results to <a href="http://10.75.49.155/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.155</a><br>sending results to <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.51</a><br>ip: <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51</a> requests counting of lines 10 to 20<br>sending results to <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.51</a><br>&lt;/zope trace&gt;<br><br>while strace says (SIGRTMIN were stripped out, are they of any use here ?):
<br><br>&lt;strace&gt;<br>recv(24, 0x8d1e7e4, 4096, 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -1 ECONNRESET (Connection reset by peer)<br>recv(24, &quot;POST /aef/rechercheMultiligne/to&quot;..., 4096, 0) = 686<br>recv(28, &quot;POST /aef/rechercheMultiligne/to&quot;..., 4096, 0) = 649
<br>recv(28, &quot;requete_11=%2410%20and%20ptel%20&quot;..., 4096, 0) = 445<br>send(24, &quot;HTTP/1.1 200 OK\r\nServer: Zope/(Z&quot;..., 666, 0) = 666<br>recv(24, 0x8ebac04, 4096, 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -1 ECONNRESET (Connection reset by peer)
<br>send(28, &quot;HTTP/1.1 200 OK\r\nServer: Zope/(Z&quot;..., 643, 0) = 643<br>&lt;/strace&gt;<br><br>As you can see, the first part of the zope trace: <br><br>ip: <a href="http://10.75.49.155/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.155</a> requests counting of lines 10 to 20
<br>ip: <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51</a> requests counting of lines 10 to 20<br><br>corresponds to this part of the strace :<br>recv(24, 0x8d1e7e4, 4096, 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -1 ECONNRESET (Connection reset by peer)
<br>recv(24, &quot;POST /aef/rechercheMultiligne/to&quot;..., 4096, 0) = 686<br>&lt;comment&gt; WHERE IS POST DATA FOR SOCKET 24??? &lt;/comment&gt;<br>recv(28, &quot;POST /aef/rechercheMultiligne/to&quot;..., 4096, 0) = 649
<br>recv(28, &quot;requete_11=%2410%20and%20ptel%20&quot;..., 4096, 0) = 445<br><br>This
part is ok. XMLHTTPRequest data is sent, saying :&quot;hello ! i request the
toutCompter methode. This is the post-data that you need to process my
query. Thanks folk, seeya !&quot;.
<br><br>Now the second part is wierd, because the zope trace and strace DO NOT MATCH :<br><br>&lt;zope trace part II, sending data back to XMLHTTPRequest&gt;<br>sending results to <a href="http://10.75.49.155/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.155
</a><br>sending results to <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51</a><br>ip: <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.51</a> requests counting of lines 10 to 20<br>sending results to <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51
</a><br>&lt;/zope trace&gt;<br><br>&lt;strace part II, data sent only to one machine !&gt;<br>send(24, &quot;HTTP/1.1 200 OK\r\nServer: Zope/(Z&quot;..., 666, 0) = 666<br>recv(24, 0x8ebac04, 4096, 0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -1 ECONNRESET (Connection reset by peer)
<br>send(28, &quot;HTTP/1.1 200 OK\r\nServer: Zope/(Z&quot;..., 643, 0) = 643<br>&lt;/strace&gt;<br><br>let&#39;s match line by line :<br>=====================================================================================
<br>zope&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; strace <br>=====================================================================================
<br><br>sending results to <a href="http://10.75.49.155/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.155</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; send(24, &quot;HTTP/1.1 200 OK\r\nServer: Zope/(Z&quot;..., 666, 0) = 666<br>sending results to <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
10.75.49.51</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; you are such a liar ! no data was really sent !
<br>ip: <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51</a> requests counting of lines 10 to 20 =&gt; WHAT ? there&#39;s no recv at all !! except for the reset !
<br>sending results to <a href="http://10.75.49.51/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">10.75.49.51</a>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; =&gt; send(28, &quot;HTTP/1.1 200 OK\r\nServer: Zope/(Z&quot;..., 643, 0) = 643<br>=====================================================================================
<br><br>This behaviour is repeated every time i use two browsers, be it on the same machine or on two separate machines.<br>It
all seems like zope would save the xmlrpc requests in a buffer and
process on of the requests many times (sometimes more than twice !), or
something alike.
<br>I would like to notice here that I use Zope 2.9.0 in single thread mode and python 2.4.2<br>I would really appreciate anybody&#39;s comment on this strange brehaviour.<br><br>Thank you.<br>Y.Chaouche