<div dir="ltr">It could be, but I am not sure. For now I have locked access to the entry point for wms GetCapabilities requests.<div><br></div><div><div>You can follow the discussion here:</div><div><a href="https://github.com/mapserver/mapserver/pull/4728">https://github.com/mapserver/mapserver/pull/4728</a><br>
</div><div><br></div><div>BR,</div><div>Umberto</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Aug 13, 2013 at 4:31 PM,  <span dir="ltr"><<a href="mailto:Michel.Dastous@bentley.com" target="_blank">Michel.Dastous@bentley.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">About WFS/WMS thread safety, looking at mapows.c I found a single static variable (epsgCode) used in msOWSGetEPSGProj(). 
<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Instead of returning a static pointer, the method could easily take a buffer + buffer size as parameters… Not a big deal except that 62 calls to that function
 will have to be modified.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Is this the only thing that make WFS/WFS server non thread safe?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks !<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<div>
<div style="border:none;border-top:solid #b5c4df 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Michel Dastous
<br>
<b>Sent:</b> Tuesday, August 13, 2013 9:45 AM<br>
<b>To:</b> 'Umberto Nicoletti'</span></p><div class="im"><br>
<b>Cc:</b> MapServer Dev Mailing List<br>
</div><b>Subject:</b> RE: [mapserver-dev] Mapserver thread safety<u></u><u></u><p></p>
</div>
</div><div class="im">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thank you very much! I will test it as soon as possible.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">From the page you sent me I realized that WMS/WFS server is not thread safe (“</span><span style="font-size:9.5pt;font-family:"Arial","sans-serif";color:#3e4349">WMS/WFS
 server: static data used for state of dispatcher”)</span><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">.   Is there any plan to fix this ? I could not find any ticket about this<u></u><u></u></span></p>

<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Thanks.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p>
<p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> Umberto Nicoletti [<a href="mailto:umberto.nicoletti@gmail.com" target="_blank">mailto:umberto.nicoletti@gmail.com</a>]
<br>
<b>Sent:</b> Tuesday, August 13, 2013 8:49 AM<br>
<b>To:</b> Michel Dastous<br>
<b>Cc:</b> MapServer Dev Mailing List<br>
<b>Subject:</b> Re: [mapserver-dev] Mapserver thread safety<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div><div>
<p class="MsoNormal">FYI, I've opened this pull request which should fix the Oracle spatial issue you are seeing:<u></u><u></u></p><div><div class="h5">
<div>
<p class="MsoNormal"><a href="https://github.com/mapserver/mapserver/pull/4729" target="_blank">https://github.com/mapserver/mapserver/pull/4729</a><u></u><u></u></p>
<div>
<p class="MsoNormal">Let me know if it works for you.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">BR,<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">Umberto<u></u><u></u></p>
<div>
<p class="MsoNormal">On Tue, Aug 13, 2013 at 8:23 AM, Umberto Nicoletti <<a href="mailto:umberto.nicoletti@gmail.com" target="_blank">umberto.nicoletti@gmail.com</a>> wrote:<u></u><u></u></p>
<div>
<p class="MsoNormal">Michel,<u></u><u></u></p>
<div>
<p class="MsoNormal">this page attempts to keep track of which Mapserver components are thread safe:<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal"><a href="http://mapserver.org/faq.html#is-mapserver-thread-safe" target="_blank">http://mapserver.org/faq.html#is-mapserver-thread-safe</a><u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">it must not be completely up to date as, as you found out, Oracle is listed as safe, while it's not.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">As for fixing it, it should be relatively easy as those two variables can be made local to the functions using them.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Please open an issue and I will look into it asap.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">Umberto<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt"><u></u> <u></u></p>
<div>
<div>
<div>
<p class="MsoNormal">On Mon, Aug 12, 2013 at 9:44 PM, <<a href="mailto:Michel.Dastous@bentley.com" target="_blank">Michel.Dastous@bentley.com</a>> wrote:<u></u><u></u></p>
</div>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt">
<div>
<div>
<div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Hi all,<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">I’ve been testing mapserver and its c# mapscript API for a while now, and I have noticed that making simultaneous Draw request on multiple maps containing Oracle layer will
 end up in memory corruption.  No surprise here since maporaclespatial.c uses static variables (ordinates_tdo and ordinates).<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">My question is: Does anyone have already evaluated how much work it would require to make it thread safe (i.e remove those static variables from the code) ?<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Furthermore, I have also tested the MSSQL plugin which is stable under same conditions, unfortunately it doesn’t seem to scale very well my 4 core machines with maximum CPU
 usage of 15%. <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">I don’t think the problem come from mapserver’ s rendering engine… when drawing a map with inlined data, I could easily reach a 90% usage.<u></u><u></u></span></p>

</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">So any suggestions/information would be welcome.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Thanks.<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif""> <u></u><u></u></span></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">_______________________________________________<br>
mapserver-dev mailing list<br>
<a href="mailto:mapserver-dev@lists.osgeo.org" target="_blank">mapserver-dev@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/mapserver-dev" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapserver-dev</a><u></u><u></u></p>
</blockquote>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>
</div></div></div>
</div>
</div>

</blockquote></div><br></div>