问题
I have a TFDMoniFlatFileClientLink
on a form, filename set to d:\temp\monitor.txt
, tracing=true, TFDConnection.Params.MonitorBy=mbFlatFile
. This sometimes works and sometimes does not trace anything. No file gets created.
Tested with Win7 32-bit app, with design time TFDConnection
to either FireBird or Oracle. Delphi Tokyo 10.2.1
What is going on?
回答1:
This was a really weird bug:
It turns out that the TFDMoniFlatFileClientLink
remembers the filename when removed and placed back, then does not trace.
To reproduce:
Remove the TFDMoniFlatFileClientLink
, optionally save the project, place a TFDMoniFlatFileClientLink
on the form again, set tracing=true. It has magically remembered filename d:\temp\monitor.txt
(where?), then either does not trace or traces to C:\Users\username\AppData\Local\Temp\traceX.txt
.
Only when you change the filename does it successfully trace again.*
Similar weird things happen with TFDMoniRemoteFileClientLink
, it very often does not create trace output for FDMonitor to pick up. I have not investigated the exact conditions under which this happens.
I found this in a test app after tracing the following issue, possibly related:**
A design time TFDConnection
gets its parameters filled at run-time. I executed TFDConnection.Params.Add('MonitorBy=mbFlatFile')
but the app did not trace. I verified that MonitorByInitial=true
at run-time. Params.Add('MonitorBy=mbRemote')
also failed.
A TFDMoniFlatFileClientLink
and TFDMoniRemoteClientLink
were placed on the datamodule at design time.
Reported in Embarcadero Quality Portal under issue RSP-19554
* Even if you change it to the same file name. If you do that at run-time you have to set Tracing=false/true
around the FileName assignment.
** Mmm, not related. Reported as RSP-19559
来源:https://stackoverflow.com/questions/47831043/tfdmoniflatfileclientlink-irregularly-does-not-trace-to-file