<br><br><div class="gmail_quote">2011/10/3 Ludo Brands <span dir="ltr"><<a href="mailto:ludo.brands@free.fr">ludo.brands@free.fr</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<u></u>





<div><div class="im">
<div><font color="#0000ff" face="Arial" size="2"></font> </div>
<blockquote style="padding-left: 5px; margin-left: 5px; border-left: 2px solid rgb(0, 0, 255); margin-right: 0px;">
  <div></div>
  <div dir="ltr" align="left" lang="fr">I changed some 
  values in some threaded code from using constants to looking up the values 
  from a database and I have been getting errors all the time, that values which 
  are present in the database are missed by the sequential scan. I have been 
  getting some Externa SIGSEGVs a lot.</div></blockquote>
</div><div align="left" lang="fr"><span><font color="#0000ff" face="Arial" size="2">The minimum 
requirement for multithreaded db access is to use a separate db connection for 
every thread and transaction isolation.</font></span></div><div class="im">
<blockquote style="padding-left: 5px; margin-left: 5px; border-left: 2px solid rgb(0, 0, 255); margin-right: 0px;">
  <div dir="ltr" align="left" lang="fr"><span> </span><br>I am not sure if the database 
  library code is faulty or looking up the values in a thread is the 
  problem<br><span><font color="#0000ff" face="Arial" size="2"> </font></span></div></blockquote>
</div><div align="left" lang="fr"><span><font color="#0000ff" face="Arial" size="2">Some database 
client libraries have problems with multithreading or have threadsafe 
versions (fe. libmysql.dll is not threadsafe in the standard version). 
</font></span></div><div class="im">
<blockquote style="padding-left: 5px; margin-left: 5px; border-left: 2px solid rgb(0, 0, 255); margin-right: 0px;">
  <div dir="ltr" align="left" lang="fr"><span> </span><br>The database lookup code is in a 
  data module running in the main thread. Do I have to use a critical section in 
  data module containing the threads to the database lookup?<br><span><font color="#0000ff" face="Arial" size="2"> </font></span></div></blockquote>
</div><div align="left" lang="fr"><span><font color="#0000ff" face="Arial" size="2">No. That is 
trying to solve the problem in the wrong place.</font></span></div>
<div align="left" lang="fr"><span><font color="#0000ff" face="Arial" size="2"></font></span> </div><font color="#888888">
<div align="left" lang="fr"><span><font color="#0000ff" face="Arial" size="2">Ludo</font></span></div></font></div>
<br></blockquote><div><br><br>If I put a TCP component such as an Indy http component on that data module, and get all the lookups to be done over the http socket, is that likely to fix the problem, rather than calling the database lookup code in the data module directly from the threads?<br>
<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">--<br>
_______________________________________________<br>
Lazarus mailing list<br>
<a href="mailto:Lazarus@lists.lazarus.freepascal.org">Lazarus@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Frank Church<br><br>=======================<br><a href="http://devblog.brahmancreations.com">http://devblog.brahmancreations.com</a><br>