Announcement

Collapse
No announcement yet.

grundsätzliche frage zum ablauf meines progs

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • grundsätzliche frage zum ablauf meines progs

    Hallo,

    Ich hab ein allgemeines Problem zum Ablauf meines c# Programms. Suche eine saubere Lösung.
    Ich weiß nicht, ob der Beitrag hier passt, aber ich weiß nicht wo sonst hin damit.
    und zwar gehts um folgendes:
    Ich habe eine ganze Menge von xxx-Dateien (Dateien eines Dokumentenmanagementsystems) in einem Array.
    die Dateien sollen exportiert werden,also wieder zu derer ursprünglichen Datei werden. Also aus .xxxz.bsp zu .pdf.
    Dann sollen die Indexdaten dieses xxx Dokuments in ein Xml geschrieben werden. Dann soll ein Datenbankflag done gesetzt werden für dieses Dokument.

    also für jedes doc:
    1)exportieren
    2)indexdaten ins xml
    3)done flag setzen

    Das Problem dabei ist, dass das 120 000 000 Dokumente sind und dass das Ganze 100% konsistent sein sollte.
    Also wenn 1) dann auch 2) und 3).
    Oder wenn Fehler bei 3, dann 1 und 2 rückgängig usw. quasi wie bei einer DB- Transaktion, ganz oder gar nicht.
    Probleme gibts immer bei Punkt 2, 1 und 3 alleine laufen tadellos, auch bei großen Dokumentblöcken.

    Daher dachte ich mir, ich nehm jedes Dok einzeln her. Dafür muss ich aber jedesmal das Xml aufmachen und einen Xml Node für das jeweilige Dokument (Indexdaten) hinzufügen.
    Dann done flag. So hab ich die Konsistenz halbwegs im Griff, denn wenn Fehler brauch ich nicht viel rückgängig machen und das Programm bricht ab.
    Nur ist das ein Wahnsinn, weil das Aufmachen des Xml irrsinnige Ressourcen braucht.

    Zumindest bekomm ich schon nach dem 300. Dokument Speicherfehler.
    (es wird versucht im geschützten Speicher zu lesen oder zu schreiben.....).
    Außerdem dauerts ja auch viel länger, denk ich?!
    Die lösung ist wahrscheinlich dumm, oder?
    Soll ich doch lieber einen Block Dokumente exportieren, dann auf einmal ins Xml und dann ein Flag setzen?
    Hab ich auch probiert, da kommt er bis zum 500. Dokument. Exportieren tut er alles richtig, nur das Xml ist kaputt nach dem 300 Dokument, da kann er irgendwelche Nodes nicht schließen etc. offensichtlich auch ein Problem mit dem Arbeitsspeicher. Und dann hab ich den Salat, weil dann kann ich alles rückgängig machen.
    Welche Methode ist besser, oder wie könnte man das besser lösen? Bin ich am Hohlweg? Geibt es einen besseren Weg?
    Wie handhabt man sowas grundsätzlich mit sovielen Datenmengen?



    bin über jeglichen tip sehr dankbar,
    lg Katrin
    Zuletzt editiert von merit9999; 24.03.2010, 13:26.

  • #2
    Hallo Katrin und willkommen,

    bitte überarbeite deinen Beitrag, so ist er nicht lesbar. Hier ein Auszug aus Hinweise für die Fragen:
    Rechtschreibung:
    Ein halbwegs korrekter Gebrauch - einschl. Groß- und Kleinschreibung - ist keine Anforderung an Schüler, um diese zu quälen, sondern dient in erster Linie den Lesern beim Verständnis.
    Auch Absätze erleichtern das Lesen und damit das Leseverständnis erheblich.

    Bitte gehe also auf deinen ersten Beitrag mit "Editieren", dann auf "Erweitert", berichtige den Text, kontrolliere ihn mit der "Vorschau", erst nach positiver Kontrolle auf "Speichern".

    Du willst Hilfe von uns. Also solltest du die Hilfe nicht unnötig und erheblich erschweren. Jürgen

    PS. Danke! Jürgen
    Zuletzt editiert von Jürgen Thomas; 24.03.2010, 15:03.

    Comment


    • #3
      Was für Indexdaten sind das? Verweise für eine Volltextsuche o.ä.? Dann ist Xml bei solchen Datenmengen völlig überfordert, wie du gemerkt hast. Da passt wirklich nur eine "echte" SQL-Datenbank. Dann machen Öffnen, Einlesen und Speichern der Indexdatei keine Probleme mehr.

      Gruß Jürgen

      Comment

      Working...
      X