Hallo,
ich Entwickele nun schon seit einer längeren Zeit an einem Tool, das diverse Aufgaben in unserer Firma für uns erledigt.
In erster Linie handelt es sich dabei um die Datenverarbeitung.
Es werden Daten von div. Schnittstellen (Datenbankzugriffe über MySQL, CSV, XML und so weiter) importiert, verarbeitet und exportiert.
Die Routinen an Sich funktionieren dabei wunderbar und es gab bis vor Kurzem keine Probleme.
Da ich nun auf meiner Entwicklungsumgebung auf ein 64Bit System umsteigen musste, musste ich auch auf VB.NET 2010 umsteigen, womit ich das Programm weiterhin in 32 Bit entwickel.
Nun ist mir vor Kurzem bei dem Durchwühlen der Log-Dateien (es wird eine .log geschrieben, wenn der Try Catch Block etwas auffängt) aufgefallen das an diversen Stellen das Programm Fehler hat. Und zwar erhalte ich "System.OutOfMemoryException".
Das Problem ereignet sich nicht/selten wenn ich die Programm-Funktionen (über 20 Arbeitsläufe) ausführe sondern Nachts, wenn ich diese in einer Zeit-aktivierten Routine nacheinander ablaufen lasse.
In den jeweiligen einzelnen Routinen werden natürlich eine Menge an Daten in ein Array gelesen, da diese für die Verarbeitung benötigt werden. Doch an manchen Stellen, vermutlich weil sich der Speicher nicht leert, werden diese Daten nicht mehr gelesen und die jeweilige Routine stürzt wegen der oben genannten Fehlermeldung ab was fatal ist.
Welche Möglichkeiten habe ich nun, dieses Problem zu Beheben?
Der Speicher selber ist mehr als groß genug, das Tool läuft auf einem großen Server(64 Bit System) mit genügen Arbeitsspeicher.
Für jede Hilfe wäre ich sehr Dankbar.
Ggf. sind ja Programmier-Routinen von mir altbacken oder nicht Zeitgemäß.
P.S. Die Suche habe ich natürlich angestrengt und die Windows-Routine SetProcessWorkingSetSize - zwischen den Programmen - hat auch zu keinem brauchbaren Effekt geführt.
ich Entwickele nun schon seit einer längeren Zeit an einem Tool, das diverse Aufgaben in unserer Firma für uns erledigt.
In erster Linie handelt es sich dabei um die Datenverarbeitung.
Es werden Daten von div. Schnittstellen (Datenbankzugriffe über MySQL, CSV, XML und so weiter) importiert, verarbeitet und exportiert.
Die Routinen an Sich funktionieren dabei wunderbar und es gab bis vor Kurzem keine Probleme.
Da ich nun auf meiner Entwicklungsumgebung auf ein 64Bit System umsteigen musste, musste ich auch auf VB.NET 2010 umsteigen, womit ich das Programm weiterhin in 32 Bit entwickel.
Nun ist mir vor Kurzem bei dem Durchwühlen der Log-Dateien (es wird eine .log geschrieben, wenn der Try Catch Block etwas auffängt) aufgefallen das an diversen Stellen das Programm Fehler hat. Und zwar erhalte ich "System.OutOfMemoryException".
Das Problem ereignet sich nicht/selten wenn ich die Programm-Funktionen (über 20 Arbeitsläufe) ausführe sondern Nachts, wenn ich diese in einer Zeit-aktivierten Routine nacheinander ablaufen lasse.
In den jeweiligen einzelnen Routinen werden natürlich eine Menge an Daten in ein Array gelesen, da diese für die Verarbeitung benötigt werden. Doch an manchen Stellen, vermutlich weil sich der Speicher nicht leert, werden diese Daten nicht mehr gelesen und die jeweilige Routine stürzt wegen der oben genannten Fehlermeldung ab was fatal ist.
Welche Möglichkeiten habe ich nun, dieses Problem zu Beheben?
Der Speicher selber ist mehr als groß genug, das Tool läuft auf einem großen Server(64 Bit System) mit genügen Arbeitsspeicher.
Für jede Hilfe wäre ich sehr Dankbar.
Ggf. sind ja Programmier-Routinen von mir altbacken oder nicht Zeitgemäß.
P.S. Die Suche habe ich natürlich angestrengt und die Windows-Routine SetProcessWorkingSetSize - zwischen den Programmen - hat auch zu keinem brauchbaren Effekt geführt.