Newsgroups : Borland : borland.public.delphi.nativeapi.win32 : 2005 Jul : priority conflicts between jet engine and real time app
| Subject: | priority conflicts between jet engine and real time app |
| Posted by: | "Otto" (otto.kolbe@nospam.klst.com) |
| Date: | 14 Jul 2005 02:28:55 |
Fighting a weird problem in an application (D7) with a real time
thread (priority 15) using only very little CPU but must be on
time and other threads (normal priority 13) that log events and
trace into a jet database once per second. I use ADO for that.
About once in two hours the real time thread does not execute on
time causing timeouts. Inspection of the process threads shows 4
threads with priority 14 that are not explicitely managed by the
application, one of them is connected to msjet.dll.
I suppose that the jet engine decides sometimes to reorganize the
database (indexes probably) and performs this within a priority
boost thus blocking the real time thread from proper execution.
I am pretty sure that the high priority thread is really affected
by the jet handling threads: if the database is kept busy by
another (test) program reading permanently the last entry in a
table the conflict does not appear.
Is there any known way to influence this behavior of the jet
engine? A reorg under normal priority would be sufficient, an
occasionally missing trace record is no problem.