Nachdem ich jetzt die letzten Tage durch meine eigene kleine private "Entwickler-Hölle" gegangen bin, wollte ich mich mal kurz zum Thema Syncproblemen rühren:
Es haben sich hier in der Gruppe und bei mir per Email insgesamt 7 Leute mit Syncproblemen gerührt. Normalerweise setze ich bei allen Zahlen rund um SiDiary den Faktor 10 für die Dunkelziffer an, d.h. ich gehe mal im Moment davon aus, dass etwa 70 oder sind wir großzügig etwa 100 Leute mehr oder weniger stark ausgeprägte Probleme mit dem Sync haben könnten und sei es nur, dass ActiveSync Konflikte meldet und die Auswahl zur Ersetzungsrichtung fehleranfällig ist (was eigentlich nicht mal erforderlich wäre) oder sie Probleme damit haben, das richtige Sync-Verzeichnis einzustellen.
Auch wenn die 100 Leute gemessen an den Gesamtbenutzerzahlen fast im Promillebereich verschwinden, würde ich Ihnen selbstverständlich gerne helfen ABER...
...hier tut sich derzeit mein Hauptdilemma auf: Ich selbst habe mir das letzte mal vor vielen Monaten Daten zerschossen und das obwohl ich für Nachfragen von Anwendern nicht gerade selten in den Daten-Eingeweiden auf Verzeichnisebene 'rumfuhrwerke und nicht nur mit meinem PPC synce, sondern parallel zusätzlich auch mit meinem Smartphone. Ich glaube also, dass -trotz der Fehleranfälligkeit durch das asynchrone Mitwirken von ActiveSync- bei den allermeisten Anwendern der Syncprozess funktioniert, denn sonst wären nach meinen bisherigen Erfahrungen einige Emails mehr bei mir aufgeschlagen
Trotz standhafter Mithilfe u.a. von LordBritish, der mich immer wieder mit Datenfiles usw. unterstützt, gelingt es mir bislang jedoch nicht, das Problem auf meinen Systemen zu reproduzieren und ich habe weiß Gott schon einiges debuggt.
Ich bin deshalb heute Nacht erst noch einmal gedanklich einen Schritt zurückgegangen und habe ein bisschen nach Gemeinsamkeiten bei den Anwendern gesucht, die die aktuellen Probleme gemeldet haben.
Viele scheinen mir Pumper zu sein. Viele scheinen auch überdurchschnittlich viel Daten (d.h. öfter mehr als ein Eingabesheet) zu verwalten. Teilweise sehe ich lange Kommentareingaben in Datenfiles. ActiveSync 3.8 scheint sich nicht wie zuerst zur Diskussion gestellt als Fehlerquelle zu bewahrheiten (jedenfalls nicht mehr als 3.7 schon ist
).
Grundsätzlich ist es SiDiary, resp. dem Quellcode, eigentlich "wurscht" mit wievielen Daten es konfrontiert wird (gut, bei einem Import von ~20.000 Datensätzen muss man schon etwas Geduld mitbringen, gell LB
) aber grundsätzlich gibt es keine strukturbedingte Grenze. Für das tägliche Arbeiten hatte ich bewusst Monats-Datenfiles aufgesetzt, so dass der Monatsdatenbestand eigentlich der Performance-begrenzende Faktor ist, für die allermeisten Dinge im täglichen Arbeiten.
Und selbst bei den Anwendern, die die Probleme gemeldet haben, scheint es ja immer auch Phasen zu geben, wo das Syncen keine Probleme macht und dann machte es klick: Bei allen kam früher oder später heraus: Die Daten am Monats
ende wurden nicht übernommen. Aus Tests mit Daten von LB konnte ich sehen, dass in einem genau solchen Fall der Windows-Client beim Syncen nicht etwa die Daten auf dem PPC gelöscht hatte (wie zuerst vermutet), sondern die Daten (vom Monatsende) vom PPC kamen nie in der Syncmethode an...
Es scheint mir, dass bei den Problemen vielleicht doch die Datenmenge eine Rolle spielt und zwar nicht auf der Ebene des eigentlichen Sync-Mechanismus (also der, der die Werte zusammenführt), sondern eine Ebene darunter, nämlich dass schlichtundergreifend ab einer bestimmten Dateigröße ein Problem auftritt, so dass alle Zeilen, die nach dieser Grenze in der Datei stehen, ignoriert oder abgeschnitten werden?!
Demnächst werde ich die SiDiarySmartSync Komponente fertig haben. Was wird das bringen? Die Komponente wird es mir erlauben, das komplette Syncen der Dateien mit der internen Routine zum Zusammenführen von Werten miteinander zu verknüpfen. Das schaltet zweierlei Dinge aus: Es wird keine Sync-Konflikte mit erforderlichem Benutzereingriff mehr geben und der gesamte Prozess ist synchron, d.h. wenn die Werte zusammengeführt werden, kann ich mich darauf verlassen, dass alle Dateien, die dafür erforderlich sind auch wirklich bereits auf den PC kopiert wurden. Lästige Konfigurationen, wie die Auswahl des Syncverzeichnis entfallen, weil SiDiaryWin32 direkt auf den PPC zugreifen wird.
Das Syncen wird dadurch langsamer, klar, weil nat. die Verarbeitungszeit dazukommt, in der sich ansonsten das grüne Rad in ActiveSync gedreht hat (aber keine Angst, bei mir sieht das noch sehr erfreulich aus!
).
Einer der größten Vorteile: Im Prinzip kann mit SmartSync jedes! Datenverzeichnis auf dem PPC eingestellt werden. Also nicht mehr nur unterhalb von My Documents, damit ActiveSync klarkommt, sondern von mir aus auch auf einer SD-Karte, im SaveStore-Bereich oderoderoder...
Mit Smartsync können beliebig viele mobile Geräte angedoggt werden, d.h. für die Smartphone-User entfällt das reine "Datei-Syncen" mit SPSync.exe - SiDiary wird das Smartphone direkt automatisch erkennen.
TROTZDEM: Letztlich basiert SmartSync auf den gleichen Dlls, wie auch ActiveSync, so dass ein evtl. vorhandenes grundsätzliches Problem mit der Dateigröße möglicherweise noch immer vorhanden sein könnte. Ich werde parallel auch unseren Lord nochmal antriggern und ihn um etwas Schützenhilfe bitten, um auch den SiDiaryCode zu checken, ob dort ab bestimmten Dateigrößen in Kombination mit zusätzlichen (welchen auch immer) Randbedingungen etwas passieren könnte.
Selbst wenn nicht sofort alle Syncprobleme mit SmartSync beseitigt werden, bin ich dann aber sehr viel zuversichtlicher die Probleme in den Griff zu bekommen, weil mit ActiveSync schon mal ein paar unschöne Dinge umgangen werden und mehr im SiDiary-eigenen Quellcode passiert.
Soviel dazu.
Losgelöst von diesem Problem, das ich wie gesagt gerne lösen will, ist mir aber zum ersten mal richtig klar geworden, was aus dem anfänglichen "SiDiary for Alf Windhorst with unlimited license for everyone else" inzwischen geworden ist: Anfangs hatte es genau die Funktionen, die ich persönlich brauchte, um meinen Diabetes verwalten zu können. Inzwischen hat es eine Vielzahl von Funktionen, die ich auf Nachfrage eingebaut habe, sie aber selbst nie nutze. Auch heute tut das Programm mit den Funktionen, die ich selbst nutze, klaglos seinen Dienst, ohne jede Abstürze und wie oben schon erwähnt: Ich habe selbst auch keinerlei Synckonflikte.
Mein größtes Problem ist, dass ich inzwischen den allergrößten Teil meiner Zeit damit verbinge, Fragen zu Funktionen zu beantworten oder auch Ungereimtheiten darin zu suchen, die ich selbst nie verwende. Ich bin kein Pumpenträger, brauche seltenst mal ein 2.Eingabesheet. Sortiere nie, füge selten mal eine neue Spalte ein. Verwende keine Nahrungsmitteldaten. Ich importiere nie von oder in andere Programme wie Diabass, OneTouch oder was auch immer.
Es gibt einige Leute, die mit SiDiary in Kombination mit dem OTUS/OneTouch-Software, Diabass/DiabassMobil, eigenen Importskripten, CSV und Excel sowie Importen aus BZ-Geräten sowohl mit Diabass, OneTouch als auch SiDiary parallel Daten von A über B nach C und wieder zurückschieben -zusammengefasst- Dinge treiben, bei denen ich bevor ich sie gehört habe behauptet hätte, dass das nicht mal geht...
Klar, dass das Prozesse sind, die ich nie selbst benutze und deshalb bis auf strukturierte Intialtests nach der Implementierung von mir nicht weiter in der Praxis angefasst werden und dort potentiell Probleme schlummern, von denen ich nichts ahne.
Durch die seit einiger Zeit eingeführten Beta-Freigaben und vor allem Eurer tatkräftigen Mithilfe ist SiDiary glaube ich alles in allem vergleichsweise stabil aber dennoch tut mir als Entwickler jeder einzelne Fehler im Gemüt weh. Das ist sehr unbefriedigend und ich muss gestehen, dass ich mir mittelfristig Gedanken darüber machen muss, wie ich damit umgehe (umgehen will) nicht mehr nur "SiDiary for Alf Windhorst" zu betreuen und ab und zu mal ein kleines Goodie dazuzuentwickeln, sondern ein Programm, das sehr viel mehr Funktionen bietet, als ich für meine eigenen persönlichen Bedürfnisse bräuchte...
Geschätzter Beta-Termin für SiDiarySmartsync: Kommendes Wochenende.
Ciaoi, Alf.