![]() |
maximale Anzahl Clientdatasets
Hall Alle
ich hab ein Projekt, in dem muss ich sehr viele verschiedene Clientdatasets erzeugen. Nun hat sich aber gezeigt dass in Abhaengigkeit der Anzahl der Spalten (vllt auch der Typen) die Anzahl der erstellbaren CDS begrenzt ist. im Testprogramm 40 spalten, lassen sich max 1489 CDS (woanders wird der wert anders sein) erzeugen, reduzier ich die spaltenanzahla auf 20 gehen 2793. ist die Zahl erreicht, stuerzt das programm mit out of memory ab. der Speicherverbruach liegt dann bei ca 110-128 MB, es waeren aber noch weit ueber 100MB speicher verfuegbar woher kommt diese grenze? gibts nen Trick die zu umgehen? danke fuer Hilfe |
Re: maximale Anzahl Clientdatasets
Verwende mal
![]() Der Delphi-Standard-Memory-Manager hat teilweise Probleme mit Speicher-Frakmentierung der Verwaltungslisten. |
Re: maximale Anzahl Clientdatasets
fastMM und nexusdb haben leider auch keine verbesserung gebracht
|
Re: maximale Anzahl Clientdatasets
Zitat:
|
Re: maximale Anzahl Clientdatasets
danke fuer die hilfe
also ehrlich gesagt: das Programm ist in Borland C++ aber ich kann de Fehler in Delphi ja genauso nachvollziehen Ist nen Applikationsserver. Das konzept ist leider gewachsen und nun werden bestimmte Daten zu veranstaltungen, die der Server schnell verwalten muss in den CDS abgespeichert. Dadurch dass nun in der Produktion immer mehr aktive Veranstaltungen dazu kommen steigt die Anzahl der CDs sehr stark (wir sind erst bei 1/3 der letztendlichen Menge), stuerzt wegen dem Speicherprogram der Serverprozess merhfach am Tag ab. Dies ist natuerlich schlecht, deswegen gings um ne schnelle Loesung, ohne viel am Source zu aendern, dass das konzept mit den viele Dataset nich richtig ist, ist auf jeden Fal klar, laesst sich aber nicht ganz so schnell aendern. (bin am ueberlegen, ob ne grosses Dataset mit den einzelnen Datasets als Nested ne bessere Lösung ist ...) Haben heute schon mit tmemdataset probiert, scheint etwas besser zu sein, die frage ist aber, wann da irgendwelche anderen probleme kommen |
Re: maximale Anzahl Clientdatasets
Und wenn Ihr das Ganze als CDS-Pool verwaltet? Also EIN CDS das alles steuert. In diesem sind die SQL-Befehle zur Erstellung der einzelnen CDS sowie Usage Counter, letzter Zugriff, Flag ob gerade aktiv usw. enthalten. In dieser Tabelle können ja durchaus Tausende von Einträgen enthalten sein. Darum liegt eine Klasse, die Du anstelle der einzelnen Datasets ansprichst. Diese kümmert sich um die Verwaltung (maximale Anzahl, freier Speicher, Schliessen der am wenigsten benutzten) usw.
|
Re: maximale Anzahl Clientdatasets
danke fuer eure Hilfe.
die schnellste Loesung war nun, die midas.dll von Dolphi 2005 zu verwenden (im gegensatz zu der von delphi 7 mit update) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz