Uploaded image for project: 'YADE - Yet Another Data Exchange Tool'
  1. YADE - Yet Another Data Exchange Tool
  2. YADE-5

Handling of changes to the history file structure

    XMLWordPrintable

Details

    • Feature
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Fixed
    • 0.9.1
    • 0.9.2
    • None
    • None

    Description

      Eine bestehende Historiendatei kann erweitert werden durch neue Felder, z.B. im Zuge der Einführung einer neuen SOSFTP Version.

      Dabei wird die Feldliste in der ersten Zeile der Historiendatei ergänzt und durch einen sicheren Mechanismus das gleichzeitige Ändern und Schreiben durch mehrere SOSFTP-Prozesse synchronisiert:

      • SOSFTP erzeugt im Fall einer erforderlichen Feldstrukturänderung diese Datei: <transfer_history>.lock
      • Andere parallele SOSFTP Instanzen suchen diese Datei, falls vorhanden wird das Schreiben verzögert. Nach timeout (Default: 60s) wird mit Fehler abgebrochen.
      • Die .lock Datei nimmt die PID des aktuellen SOSFTP-Prozesses auf.
        + Unix: $$
        + Windows: http://www.jroller.com/santhosh/entry/get_current_java_process_id zeigt wie das mit getpids.exe geht, eine eigene Lösung wäre aber besser. getpids.exe scheint nur die PIDs von Kindprozessen zu zeigen, nicht aber die aktuelle.
      • Parallele SOSFTP-Instanzen, die ebenfalls eine .lock Datei anlegen wollen, lesen den Inhalt der Datei und prüfen, ob es einen Prozess mit dieser PID gibt.
        + Wie prüft man das Vorhandensein eines Prozesses via PID
        ++ Unix: ps-Kommand (Achtung: betriebssystemabhängig)
        ++ Windows: k.A.
        Wenn der Prozess vorhanden ist, dann wartet die SOSFTP-Instanz. Ist der Prozess nicht mehr vorhanden, dann löscht SOSFTP die Datei, legt sie neu an mit seiner PID.

      Attachments

        Activity

          People

            mo Mürüvet Öksüz (Inactive)
            ap Andreas Püschel
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: