Das Notes Forum
Lotus Notes / Domino Sonstiges => OLE/COM-Programmierung => Thema gestartet von: SourceBase am 08.07.09 - 08:12:57
-
Hallo,
ich nutze die com - API von Lotus Notes um aus .NET auf Termine und Aufgaben zuzugreifen.
Dazu habe ich eine Klasse, die immer vorhanden ist. Timergesteuert ruft diese Unterklassen auf, die auf Lotus Notes zugreift und die com-Objekte erzeugt. Nach jedem Time-Event steigt der Speicherverbrauch des Programms im Task-Manager ins unermäßliche.
Mit Speicher-Verwaltungsprogrammen wie ANTZ Memory Profiler kann man leider nur die .NET Objeklte überwachen. Diese bleioben über die gesamte Laufzeit aber Konstant.
Muss man die Com-Objekte besonders behandeln, das der GarbageCollector diese wegräumt?
Ich erstelle ein Objekt mit:
Domino.NotesSession notesSession = null;
notesSession = new Domino.NotesSessionClass();
notesSession.Initialize(NotesPassword);
-
Hallo SourceBase
Ja. :)
Alles brav immer wenn man nicht mehr braucht auf Null setzen und manchmal am passenden Ort GC.Collect aufrufen (in Schleifen kann sonst eklig werden), dann sollte das klappen.
Hoffe hilft Dir etwas weiter. Bin auch nicht wirklich DotNet Profi. Aber musste mich auch schon etwas damit rumschlagen.
Gruss
Remo
-
Vielen Dank,
leider bringt dies nicht so viel :-( hatte ich gestern bereits versucht. Kennst du evtl. ein Programm, mit dem man Com-Objekte beobachten kann? Mich würde einfach ma interessieren wieviele im Speicher rumfliegen.
Habe bereits alles auf NULL gesetzt und danach den GC aufgerufen. Ist echt zum verzweifeln.
-
Hi SourceBase
Nein, kenne ich nicht. Nur sonst was im Netz gefunden.
Da schreiben die was von Marshal.ReleaseComObject(person1)
Hier noch der Link:
http://www.getdotnetcode.com/gdncstore/free/Articles/ReleasingComObjectsWithVbNet.htm
Und noch ein Link gefunden:
http://dotnetdebug.net/2005/09/10/runtime-callable-wrapper-internals-and-common-pitfalls/
Gruss
Remo
-
Hey,
danke für die Seite, mit hilfe des Tools konnte ich feststellen, das die OLE32.DLL der Übeltäter ist. Ich denke sie dient als Schnittstelle zwischen Lotus Notes und .NET oder liege ich da falsch?