I have implemented a SOAP Server using the Delphi 7 SOAP components (together with an INDY HTTP Server).
I left all the implementations to the methods of my class (descendant of TInvokableClass) empty. After issuing a few thousand calls to several of the methods (with a VB 6 client / MSSOAP) I realized that my little server had a huge memory leak.
A little research lead me to the article
and using the KMM tool described there let me find, that every method call that arrives at my Server leads to a creation of an Object of my TInvokableClass descendants Class. The Creator of TInvokableClass contains a TSOAPHeaders.Create which, according to KMM has never been freed again. This leads to a loss of 32 bytes for every call to my server.
Can anybody tell me why the the Object of class TSOAPHeaders is created, but never freed ? What do I have to do to get rid of it ?
By the way: I tried to free it manually in the destructor of my class, which lead KMM to tell me, that everything was alright now. But in the Task managers process/memory usage monitor it still looks exactly the same as without freeing the TSOAPHeaders, which lets me think I am definitely doing something wrong. Can anyone explain this discrepancy ?