<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>