ISAPI does not unload when GIFImage is referenced
I have been migrated from D5 to D6. After the migration it appeared that my web API did not unload
(OMNIhttp as server). After debugging the application the cause was a reference in a RB report form to the
unit GIFImage. I removed the unit and it still compiled OK and the report containing the reference also
displayed OK.
Does anyone know why is this unit referenced and is there a possibility that it has a bug preventing it to
unload?
Thanks for any assistance on this,
Herman Steigstra
(OMNIhttp as server). After debugging the application the cause was a reference in a RB report form to the
unit GIFImage. I removed the unit and it still compiled OK and the report containing the reference also
displayed OK.
Does anyone know why is this unit referenced and is there a possibility that it has a bug preventing it to
unload?
Thanks for any assistance on this,
Herman Steigstra
This discussion has been closed.
Comments
either. Is there any more information you could give us, other than
removing the uses clause entry for GIFImage has fixed your problem?
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
was found on one the the report forms (don't know if this was done manually or
as a result of the addition of a component). When I removed this line, the
problem was solved. In the map file I see that also the unit MMsystem (Borland)
is linked in. In a simple ISAPI project I included the GIFImage unit, but that
had no effect.
The problem (not unloading) is triggered even when no code is activated. Just a
requesting a non-existing page within the ISAPI, causing the loading of the dll
is sufficient. When Omni is stopped I can unload the dll with the debugger. When
I do a "Flush server", forcing all dll's to unload, Omni is hanging and a reboot
of the Win98 is required to get a stable system again.
As almost no functionality is approached, I would suggest that the fault is
either in the initialization part of GIFImage or one of its referenced units or
a procedure name in either GIFImage or MMsystem conflicts with i.e. one of the
RB. Another possibility might be that the GIFImage unit of TeeChart Professional
is incompatible with the one of RB. I don't know which one is used. I will do
some additional analysis to see if that is the case.
BTW, I am using D2, service pack 2, RB 7.01, Win98.
Thanks, Herman Steigstra
Win9x was NEVER a stable system!
jm2c,
Chris Ueberall;
Found a small "trace" that I will try to analyse first. Also in my very small
test application I notice that the WebModuleDestroy is not called AT ALL after
terminating my application. This application is very simple: just a dataform and
a single page producer. I will submit this problem in the Delphi forums.
Herman Steigstra
problem. Unfortunately this does not solve the unload problem.
You say you have a small test app. Can you send this to
support@digital-metaphors.com along with the steps to reproduce the problem.
Cheers,
Jim Bennett
Digital Metaphors
http://www.digital-metaphors.com
info@digital-metaphors.com
The small test application I was talking about does not have the problems. It
just displayed the same symptoms ('no OnDestroy') as the main app.
In the mean time I do have some additional info. I managed to break into the
ExitProc chain and notice that the debugging is halting after leaving the
finalization section of the unit TeCanvas (TeeCustomEditColors.Free), which
might point at a problem in TeeChart. Would that suggest a problem related to
TeeChart? May be I can test this by including TChart into my small test app. I
will let you know what comes out of that.
Regards, Herman Steigstra
problem.
As requested I have uploaded the source to your support department with a
description to reproduce the problem.
Best regards, Herman Steigstra
GIFImage is not our code. However I do recall that we encountered an issue
with it while developing ReportBuilder Server Edition. We had to modify
GIFImage to work properly. RB Server Image uses a unit called rsGIFImage
that contains the mods. In the initialization/finalization section we had to
remove the code that creates and frees a DummyThread.
You should consider porting your solution to RB Server Edition. It contains
a high performance RAD solution for implementing multi-tier reporting
solutions. It enables you to leverage our considerable R&D efforts. Attached
is an article with more details. Here is a link to our live demo server
http://www.digital-metaphors.com/RBServerLive
--
Nard Moseley
Digital Metaphors
http://www.digital-metaphors.com
Best regards,
Nard Moseley
Digital Metaphors
www.digital-metaphors.com