FJ Software Foren-Übersicht  
 Homepage   •  Suchen   •  FAQ   •  Mitgliederliste   •  Registrieren   •  Login
 Synchronisation 1 Handy - mehrere PCs/MPE-Installationen Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Neues Thema eröffnenNeue Antwort erstellen
Autor Nachricht
sbw72



Anmeldedatum: 30.10.2019
Beiträge: 5

BeitragVerfasst am: Mi Okt 30, 2019 16:36 Antworten mit ZitatNach oben

In Kürze: Ich benutze MPE seit mehreren Jahren, bin aber immer wieder auf Probleme bei der Synchronisation gestossen. Insbesondere wurden gelöschte Einträge wieder neu erstellt oder Änderungen ungewollt überschrieben. Die Lösung bestand schließlich darin, vor jedem "Multi-Sync" in allen Rubriken (Telefon, Kalender, Notizen) die Funktion "Vom Handy neu laden" auszuführen und in den Sync-Einstellungen "Synchronisieren mit interner Sync-Datenbank" sowie "Erzwinge Handy > Sync-DB" zu aktivieren.

Problembeschreibung im Detail: Ich verwende mehrere MPE-Installationen (Büro-PC, Heim-PC, Laptop, Tablet), um meine Kontakte, Termine und Notizen auf (m)einem Handy zu verwalten. Das Ganze lief meist problemlos unter Verwendung der Funktion "Multi-Sync". Hin und wieder traten dann aber seltsame und sehr unerfreuliche Probleme auf, speziell nach umfangreicheren Bereinigungen (Löschungen oder Änderungen) von Einträgen, bei der Synchronisation mit unterschiedlichen Geräten unmittelbar nacheinander und bei der Synchnonisation mit einem Gerät, mit dem schon länger keine Synchronisation mehr erfolgte: gelöschte Einträge wurden neu erstellt, Änderungen mit alten Werten überschrieben und neu erstellte Einträge wurden gelöscht.

Hintergrund: Die genaue Logik, die hinter der Synchronisation von MPE mit dem Handy bzw. weiteren Datenbanken (interne, Google, Outlook) steckt, habe ich noch nicht ganz durchschaut und auch hier im Forum habe ich diesbezüglich noch keine erschöpfenden Antworten gefunden: Verwendet MPE einen Versionszähler oder einen Zeitstempel für Einträge? In welchen Schritten erfolgt eine Synchronisation?
Was ich bisher glaube, herausgefunden zu haben: In einem ersten Schritt werden immer Handy und MPE-Desktop abgeglichen. Danach erfolgt, je nach Einstellung, der Abgleich mit der internen Sync-DB / anderen DBs. Außerdem werden (nur?) dann Neueinträge/Änderungen/Löschungen in MPE korrekt aufs Handy übernommen, wenn zuvor die Daten vom Handy geladen oder synchronisiert wurden. Und: die "interne Sync-DB" befindet sich nicht auf dem Handy und wandert deshalb auch nicht von einer MPE-Desktop-Installation zur anderen mit. Vielmehr hat jede MPE-Instanz ihre eigene, "interne Sync-DB".

Stabiler Sync-Prozess/empfohlene Vorgehensweise: Allen, die ggf. die gleichen Probleme haben, kann ich die unter "In Kürze" beschriebene Vorgehensweise empfehlen. Hier nochmal im Detail:
1.) Nach dem Start von MPE-Desktop mit dem Handy verbinden und in jeder Rubrik "vom Handy neu laden" (blauer Pfeil) ausführen.
2.) Dann einen "Multi-Sync" ausführen. Ich synchronisiere mit der "Internen Sync-DB" und habe "Erzwinge Handy > Sync-DB" und "Bestätigungsfenster ab 1 Änderung" eingestellt.
3.) Was jetzt an Neueinträgen, Änderungen und Löschungen dargestellt wird, sollte dem "Update-Umfang" seit der letzten Synchronisation mit dieser MPE-Instanz entsprechen.
4.) Während dieser "Session" können jetzt Änderungen sowohl am Handy als auch im MPE-Desktop gemacht werden.
5.) Um diese "Session" abzuschließen nach der letzten Änderung einen "Multi-Sync" ausführen. Pessimisten und Sicherheitsfanatiker schließen regelmäßig noch ein Backup an.
6.) Die nächste "Session", insbesondere, wenn Sie an einer anderen MPE-Installation erfolgt (sprich: wenn ich mein Handy mit einem anderen Gerät verbinde) unbedingt wieder mit 1.) beginnen.

Vorschläge / Anregungen:
1.) Ich fände es prima, wenn FJ (oder jemand anderes, der entsprechend kompetent ist - bitte kein Halbwissen) den Synchronisationsprozess und die dahinter stehende Logik einmal genau erläutert. Vielleicht würde das nicht nur mir helfen, das Ganze besser zu verstehen und Probleme zu umgehen.
2.) Falls jemand aufgrund der Schilderungen in meinem Beitrag zum Schluss kommt, dass ich irgendwo irre oder das System falsch bediene, bin ich für konstruktive Hinweise natürlich dankbar.
3.) Falls mein Vorgehen tatsächlich der einzig wirklich stabile Weg ist, um ein Handy mit mehreren MPE-Instanzen synchron zu halten, dann schlage ich vor, neben der Funktion "Multi-Sync (Shift+F5)" noch eine Funktion "Multi-Download" hinzuzufügen, die auf einen Klick alle drei Rubriken (Kontakte/Telefon, Termine und Notizen) downloaded.

Abschließend nochmal ein großes Lob und vielen Dank an FJ!
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 9992

BeitragVerfasst am: Mi Okt 30, 2019 20:58 Antworten mit ZitatNach oben

Hallo und willkommen in unserem Forum!

sbw72 hat Folgendes geschrieben:
In einem ersten Schritt werden immer Handy und MPE-Desktop abgeglichen.

Das ist korrekt und erfolgt nach folgendem Schema => Synchronisationsrichtung bei Sync "Nur MyPhoneExplorer"
D.h. Probleme gibt es immer, wenn Veränderungen im Handy + MPE existieren.
Die Veränderungen in MPE überschreibst Du natürlich mittels der Funktion "Vom Handy neu laden", so dass dann nur noch die vom Handy existieren.
Bei Einbindung eines 3.Programmes oder der MPE-Sync-Datenbank ist folgendes zu beachten:
1. Von einer Verwendung eines Onlinekontaktkontos oder Online-Kalenders z.b. von Google ist abzuraten, dadurch entstehen 90% aller Probleme.
Der Grund ist der, dass Du den Zeitpunkt des Googlesync nicht beeinflussen kannst und wenn der mit dem MPE-Sync kollidiert, gibt es besagte Probleme.
2. Es sollte in den Sync nur 1 Kontaktkonto eingebunden werden
3. Bei der Verwendung von mehreren Kalenderspeicher siehe => Kalenderzuordnung mit mehreren Kalendern

sbw72 hat Folgendes geschrieben:
Falls mein Vorgehen tatsächlich der einzig wirklich stabile Weg ist, um ein Handy mit mehreren MPE-Instanzen synchron zu halten, dann schlage ich vor, neben der Funktion "Multi-Sync (Shift+F5)" noch eine Funktion "Multi-Download" hinzuzufügen, die auf einen Klick alle drei Rubriken (Kontakte/Telefon, Termine und Notizen) downloaded.

Ja, wie schon erwähnt, werden dabei alle Daten vom Handy nach MPE übertragen und besagte Fehler können nicht oder nur in Ausnahmefällen auftreten, da Du ja die Syncrichtung vom Handy => Syncdatenbank, Outlook eingestellt hast. Bedeutet ja wohl, dass Du alle Veränderungen in dem einen Handy vornimmst ?
Welche Desktopversionen auf den PC's und welcher Client auf dem Handy sind bei Dir installiert ?

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
MPE Version 1.8.12 nightly / Client 1.0.67 beta
W7 64Bit /Outlook 2010
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
sbw72



Anmeldedatum: 30.10.2019
Beiträge: 5

BeitragVerfasst am: Mi Okt 30, 2019 23:19 Antworten mit ZitatNach oben

Hallo icke1954 und vielen Dank für die schnelle Antwort!

Ich verwende die aktuelle Desktop-Version 1.8.12 auf allen Geräten und die Client-Version 1.0.68 auf einem Samsung Galaxy A50 mit Android 9.0.

Ich synchronisiere weder mit Outlook, Google etc., sondern verwalte Kontakte, Termine und Notizen ausschliesslich auf dem Handy (wenn ich unterwegs bin) oder mit MPE auf den PCs (im Büro oder zu Hause).

Lange Zeit ging auch mit den Standardeinstellungen (Verwendung von "Multi-Sync", Synchronisierung nur mit der Standardeinstellung "Nur MyPhoneExplorer" und "in beide Richtungen") alles gut. Aufgrund von ein paar "Sync-Unfällen" bin ich dann aber vorsichtig und skeptisch geworden.

Vielleicht schildere ich nochmal meinen letzten großen "Unfall" in Stichworten:

1.) Multi-Sync des Handys mit PC1 (Heim-PC)
2.) Löschen von über 400 alten Terminen in MPE auf PC1
3.) Multi-Sync des Handys mit PC1
4.) Multi-Sync des Handys mit PC2 (Büro-PC, auf dem noch der alte Stand vor Schritt 1 war): die 400 alten Termine werden nicht etwa auch auf PC2 gelöscht, sondern (ohne Rückfrage) auf dem Handy wieder neu erstellt. Damit war dann das Ergebnis der Terminbereinigung sowohl in MPE auf PC2 als auch auf dem Handy nicht mehr vorhanden.
5.) Die Lösung war dann ein Offline-Backup auf PC1 und ein anschließendes Zurückspielen des Backups. Ein weiterer Multi-Sync mit PC1 hätte nämlich vermutlich auch dort alle Löschungen wieder rückgängig gemacht!

Auf gleichem Weg habe ich mir ein paar Notizen bzw. die Änderungen an diesen Notizen erst "zerschossen" und dann wiederhergestellt.

Ich habe dann einiges an Zeit in Versuche investiert, die Logik und den Ablauf der Synchronisation zwischen Handy und MPE zu verstehen. In diesem Zuge habe ich dann auch die interne Sync-DB aktiviert, weil das der einzige Weg ist/war, den ich gefunden habe, der mir, "bevor das Kind in den Brunnen fällt", eine Kontrolle darüber erlaubt, was in welcher Richtung synchronisiert wird. Das beste Beispiel sind regelmässig die Notizen (vgl. oben geschildertes Szenario): belasse ich die Einstellung auf "beides Synchronisieren", wird, wenn ich eine Notiz im Smartphone oder auf PC1 verändert habe, in grüner Schrift ausgewiesen: "2 Einträge werden erstellt" (und zwar einer auf dem Handy, einer in MPE auf PC2). Wenn ich aber "erzwinge Handy > Sync-DB" einstelle, erscheint "1 Eintrag wird gelöscht, 1 Eintrag wird erstellt" und die alte Version der Notiz wird in der Sync-DB auf PC2 gelöscht und die neue Version von PC1 & Handy wird eingetragen.

Mir ist völlig klar, dass jede Synchronisierung mit n > 2 Geräten grundsätzliche, logische Probleme aufwirft (in meinem Fall: woher soll MPE auf PC2 wissen, dass die 400 nicht auf dem Handy vorhandenen Termine früher mal vorhanden waren und dann absichtlich auf PC1 / dem Handy gelöscht wurden?) - genau deshalb interessiert mich ja, nach welcher Logik MPE intern Veränderungen im Datenbestand "trackt" und entscheidet, welche Version nun die "aktuelle" ist.

Wenn ich nämlich (und jetzt kommt quasi der Punkt, an dem ich verständnismässig aussteige) im obigen Beispiel nach Schritt 1.) einen Eintrag auf dem Handy lösche (nennen wir ihn "Eintrag No. 401"), wird er beim nächsten Multi-Sync mit PC1 (!) (Schritt 3.) nicht etwa im Handy neu erstellt, sondern - wie es auch sein soll - gelöscht! Und im Bestätigungs-Dialog für den Sync mit der internen Sync-DB von PC1 erscheint auch brav die entsprechende Löschung. Und zwar, und das ist für mich der "brain twister", auch dann, wenn zum Zeitpunkt der Löschung auf dem Handy keine aktive Verbindung mit der MPE-Instanz auf PC1 bestand. Hätte ich das Handy aber nach der Löschung des Eintrags No. 401 nicht mit PC1, sondern mit PC2 synchronisiert, wäre der Eintrag wieder neu erstellt worden!

Langer Rede, kurzer Sinn: es macht offensichtlich einen Unterschied, ob und in welcher Reihenfolge das Handy mit welcher MPE-Instanz (PC1, PC2) synchronisiert wird. Und ich würde gerne verstehen, wieso. Solange ich nur zwischen Handy und PC1 synchronisiert habe, war es völlig egal, auf welchem von beiden Geräten ich welche Änderung (Neueintrag, Änderung, Löschung), online wie offline, vorgenommen habe (solange es nicht den gleichen Eintrag betraf). Erst ein Sync mit PC2 warf das System völlig aus der Bahn. Ich kann mir das nur so erklären, dass (Android-? / MPE-?)intern irgendein Versionszähler mitläuft, der hier ggf. aus dem Tritt kommt, wenn der "Sync-Partner" gewechselt wird. Und die in meinem ersten Beitrag geschilderte Vorgehensweise ist die bisher einzige, auf die ich gekommen bin, um das Problem in den Griff zu bekommen.

Ich bedaure, dass das Ganze nur so umständlich zu beschreiben ist und danke schon mal im Voraus für die Zeit, die Du Dir für mein Problem nimmst!
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 9992

BeitragVerfasst am: Do Okt 31, 2019 10:31 Antworten mit ZitatNach oben

Danke für die umfangreichen Infos.
Ich mußte leider erst einmal, die am häufigsten auftretenden Fehler bezüglich Google-Account oder bei der Nutzung eines 3.Programmes, abklären.
Bei der Nutzung der Funktion "Nur MyPhoneExplorer" oder "Interne Datenbank" entfällt auch das Problem mehrerer Kalender / Kontaktkonten.

Die Funktionsweise des Syncs ist folgender:
In einer internen Datenbank merkt sich MPE auf dem PC welche Einträge wann bearbeitet wurden.
Wird ein Eintrag im Handy gelöscht, sollte dieser auch eindeutig von jedem weiteren PC nach folgender Logik zum Löschen erkannt werden:
Beim Vergleich merkt MPE, dass im Handy der Eintrag fehlt, da er laut interner Datenbank seit dem letzten Sync nicht erstellt wurde, kann er nur im Handy gelöscht worden sein.
Die gleiche Logik wird auch beim Erstellen eines Eintrages und bei Veränderungen auf einer Seite angewandt. Probleme gibt es nur, wenn Veränderungen auf beiden Seiten statt gefunden hatten.
Auch kommt es häufig zu Problemen wenn es zuvor Sync-Abbrüche gegeben hatte, oder der Index der Datensätze, aus welchen Gründen auch immer, durcheinander geraten ist .
Wie Du schon richtig erkannt hast, bringt die Verwendung der Syncdatenbank den Vorteil mit sich, dass man an Hand des Bestätigungsfensters und des zuvor durchgeführten "Vom Handy neu laden" diese Probleme ausschließen kann.
Zu beachten ist auch, wie Du ebenfalls schon festgestellt hattest, erst ein Sync zwischen Handy <> MPE stattfindet, bevor das Bestätigungsfenster erscheint. Durch Abbruch und erneutem Sync wird Dir jetzt immer ein Sync Interne Datenbank > Handy vorgeschlagen (Logik: Im Handy und MPE sind die Einträge identisch, kann also der Unterschied nur aus der Datenbank kommen) Ich gebe zu, das ist etwas verwirrend, hatte ich bei FJ auch schon angesprochen, läßt sich aber leider nicht ändern.
Die bestehenden Probleme z.Z. mit dem PC2 solltest Du wie folgt lösen:
Über "Erweitert" => "Syncverlauf zurück setzen"

Hilft das auch nicht, wende Dich bitte mit einem Link zu diesem Thread per Mail direkt an FJ => Impressium
Bei dieser Gelegenheit, kannst Du ihm ja auch gleich Deinen Vorschlag übermitteln. Meine Idee wäre, diese Funktion mittels eines Tweaks beim Start von MPE festlegen zu können.
In der Regel mußt du Dich allerdings mit einer Antwort bei FJ etwas gedulden.

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
MPE Version 1.8.12 nightly / Client 1.0.67 beta
W7 64Bit /Outlook 2010
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
sbw72



Anmeldedatum: 30.10.2019
Beiträge: 5

BeitragVerfasst am: Do Okt 31, 2019 18:59 Antworten mit ZitatNach oben

Hallo icke1954, vielen Dank für die weiteren Erläuterungen!

icke1954 hat Folgendes geschrieben:

In einer internen Datenbank merkt sich MPE auf dem PC welche Einträge wann bearbeitet wurden. ... Beim Vergleich merkt MPE, dass im Handy der Eintrag fehlt, da er laut interner Datenbank seit dem letzten Sync nicht erstellt wurde, kann er nur im Handy gelöscht worden sein.


Das erklärt für mich plausibel, wie ein bzw. mehrere aufeinanderfolgende Syncs zwischen den gleichen Partnern (im Beispiel "Handy" und "PC1") stabil funktionieren können. Ich fasse die vier Fälle nochmal in eigene Worte:

a) Ist ein Eintrag in MPE vorhanden mit Zeitstempel(Eintrag) > Zeitstempel(letzter Sync), aber nicht im Handy, muss er in MPE neu angelegt worden sein => er wird auch im Handy neu erstellt.
b) Ist ein Eintrag in MPE vorhanden mit Zeitstempel(Eintrag) < Zeitstempel(letzter Sync), aber nicht im Handy, muss er im Handy gelöscht worden sein => er wird auch in MPE gelöscht.
c) Ist ein Eintrag im Handy vorhanden mit Zeitstempel(Eintrag) > Zeitstempel(letzter Sync), aber nicht in MPE, muss er im Handy neu angelegt worden sein => er wird auch in MPE neu erstellt.
d) Ist ein Eintrag im Handy vorhanden mit Zeitstempel(Eintrag) < Zeitstempel(letzter Sync), aber nicht in MPE, muss er in MPE gelöscht worden sein => er wird auch im Handy gelöscht.

Ich nehme dabei an, dass neben dem Zeitstempel auch noch irgendeine ID mitgeführt wird und nicht etwa der Bezeichner eines Eintrags als Primärschlüssel dient ?

icke1954 hat Folgendes geschrieben:
Wird ein Eintrag im Handy gelöscht, sollte dieser auch eindeutig von jedem weiteren PC ... erkannt werden.


Wenn a) bis d) genau so ablaufen, dann muss da der Fehler liegen! In meinem Beispiel hatte ich nämlich beim Sync zwischen Handy und MPE auf PC2 400x den Fall b). Aber statt die 400 Einträge auch im MPE auf PC2 zu löschen, wurde daraus 400x Fall a). Die Frage ist: warum?

Das blöde an der ganzen Sache war ja, dass ich nicht nur einmal Lehrgeld gezahlt habe, weil ich ursprünglich auch von irgendwelchen "außergewöhnlichen" / einmaligen Ereignissen bzw. Fehlern meinerseits ausgegangen bin. Und bevor ich die interne Sync-DB aktiviert hatte, bin ich außerdem jedes Mal ohne Vorwarnung "ins Messer" gelaufen, weil - wie Du ja selbst beschreibst / bestätigst - der erste Ableich zwischen MPE und dem Handy (Fälle a-d) ohne Eingriffsmöglichkeit oder Rückfrage geschieht, sobald die Verbindung steht und man die Synchronisierung startet.

icke1954 hat Folgendes geschrieben:
Auch kommt es häufig zu Problemen wenn es zuvor Sync-Abbrüche gegeben hatte ...


Das meine ich bei meinen Sync-Unfällen als Grund ausschließen zu können.

icke1954 hat Folgendes geschrieben:
... oder der Index der Datensätze, aus welchen Gründen auch immer, durcheinander geraten ist.


Dazu zwei Fragen:
1.) Welche Gründe könnten das sein?
2.) Kann ich diesen Index irgendwie prüfen und ggf. fixen?

icke1954 hat Folgendes geschrieben:
Die bestehenden Probleme z.Z. mit dem PC2 solltest Du wie folgt lösen: Über "Erweitert" => "Syncverlauf zurück setzen"


Auch dazu eine Anmerkung und zwei Fragen:
3.) Wie gesagt: Indem ich mich konsequent an den in meinem ersten Thread geschilderten Ablauf halte (auf den Punkt gebracht: bei jedem Wechsel des Sync-Partners zuerst mit dem alten Sync-Partner einen Multi-Sync als Abschluss und dann mit dem neuen Sync-Partner einen Komplett-Download + als Absicherung/Ergänzung die Einstellung "Erzwinge Handy > Sync-DB"), komme ich aktuell (zumindest die letzten Paar Wochen) fehlerfrei klar.
4.) Was genau bewirkt denn "Sync-Verlauf zurücksetzen"? Wird dabei die von dir erwähnte "interne Datenbank" gelöscht?
5.) Ergänzend zu 4.) und nur zur Klärung: wir reden bei dieser "internen Datenbank" nicht von der "Internen Sync-DB", sondern von einer weiteren (Fälle a-d von oben), die sonst nirgendwo im GUI von MPE "auftaucht" und auf die sich auch Dein Hinweis mit dem Index bezieht, richtig?

icke1954 hat Folgendes geschrieben:
Hilft das auch nicht, wende Dich bitte mit einem Link zu diesem Thread per Mail direkt an FJ


Wenn wir am Ende unserer Unterhaltung gemeinsam zu dem Schluss kommen, dass tatsächlich ein Bug vorliegt oder zumindest das Problem reproduzierbar ist, mache ich das gerne!

Viele Grüße!
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 9992

BeitragVerfasst am: Fr Nov 01, 2019 02:21 Antworten mit ZitatNach oben

icke1954 hat Folgendes geschrieben:
In einer internen Datenbank merkt sich MPE auf dem PC welche Einträge wann bearbeitet wurden. ... Beim Vergleich merkt MPE, dass im Handy der Eintrag fehlt, da er laut interner Datenbank seit dem letzten Sync nicht erstellt wurde, kann er nur im Handy gelöscht worden sein.

Sorry, aber das ist leider so nicht richtig!

Habe es gerade getestet, korrekt ist:
1. Eintrag existiert in MPE aber im Handy nicht
1.1. Ist der Datensatz ohne X-IRMC-LUID, wurde er in MPE neu erstellt
1.2. Existiert in dem Datensatz eine X-IRMC-LUID, wurde er im Handy gelöscht
2. Datensatz existiert im Handy aber in MPE nicht: Eintrag wurde im Handy neu erstellt
3. Datensatz existiert im Handy, der selbe Datensatz besitzt in MPE eine Löschmarkierung (FLAG:DELETE): Datensatz wurde in MPE gelöscht

D.h. in Deinem Fall trifft wohl 1.1. zu, allerdings kann ich mir die Ursache dafür nicht erklären, das solltest Du FJ fragen ?

sbw72 hat Folgendes geschrieben:
Dazu zwei Fragen:
1.) Welche Gründe könnten das sein?
2.) Kann ich diesen Index irgendwie prüfen und ggf. fixen?


Zu 1. Das weiß ich nicht, meiner Meinung nach hat FJ dafür auch keine Erklärung, weshalb die ID's zwischem MPE und der Syncdatenbank nicht mehr übereinstimmen, kann eigentlich nur ein Verbindungsproblem sein ?
Zu 2. Über "Erweitert" => "Syncverlauf zurück setzen"
Dabei werden die SYNCDB-UID's in der Datenbank gelöscht und beim nächsten Sync wieder korrekt erstellt
Überprüfen kannst Du das, in dem Du die SYNCDB-UID's in der Datenbank *.dat mit den VID's in der entsprechenden Sync-Datenbank vergleichst.
z.b. Kontakte: Phonebook.dat <> SyncDB_Phonebook.vcf


sbw72 hat Folgendes geschrieben:
... oder zumindest das Problem reproduzierbar ist, mache ich das gerne!

Ich kann den geschilderten Fehler nicht reproduzieren ?

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
MPE Version 1.8.12 nightly / Client 1.0.67 beta
W7 64Bit /Outlook 2010
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
sbw72



Anmeldedatum: 30.10.2019
Beiträge: 5

BeitragVerfasst am: Mo Nov 04, 2019 17:52 Antworten mit ZitatNach oben

Hallo icke1954,

vielen Dank für die Informationen!

Ich werde mit einem Zweit-/Test-Handy der Sache nochmals nachgehen und mit einem Editor die Dateien analysieren. Mit "X-IRMC-LUID" und "SYNCDB-UID" und Deinen Erläuterungen habe ich ja jetzt ein paar Ansatzpunkte.

Die nächste Zeit wird bei mir allerdings sehr stressig, deshalb kann das eine Weile dauern. Vorerst habe ich für mich ja einen stabilen Modus Vivendi gefunden ...

Vorerst jedenfalls nochmals vielen Dank für die freundliche Unterstützung!
Benutzer-Profile anzeigenPrivate Nachricht senden
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 9992

BeitragVerfasst am: Mo Nov 04, 2019 18:11 Antworten mit ZitatNach oben

Danke für Dein Feedback!

Gruß icke

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
MPE Version 1.8.12 nightly / Client 1.0.67 beta
W7 64Bit /Outlook 2010
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
FJ
Site Admin


Anmeldedatum: 15.02.2006
Beiträge: 30370
Wohnort: Tirol

BeitragVerfasst am: Mi Nov 06, 2019 21:56 Antworten mit ZitatNach oben

Nochmal eine Erklärung von mir als Entwickler:
Du hast recht, es wird immer zuerst das Handy mit MyPhoneExplorer synchronisiert und anschließend werden die Daten mit dem Sync-Ziel synchronisiert. Ich schreibe absichtlich Sync-Ziel weil es letztlich egal ist wohin synchronisiert wird (Outlook, Thunderbird, vCard-Datei, interne Sync-Datenbank). Der Vorgang an sich und die Logik bleibt immer gleich. Weiters muss bedacht werden dass es bei den Einträgen im Handy generell keinen Zeitstempel gibt, das macht die ganze Sache interessanter Wink

Also wie gesagt zuerst Sync mit dem Handy:
- zuerst wird abgefragt wieviele Datensätze geändert wurden
- bei mehr als 500 Änderungen wird intern ein "Vom Telefon neu laden" gefahren (der Client speichert nicht mehr als die letzten 500 Änderungen)
- ansonsten werden die Änderungen die in MyPhoneExplorer gemacht wurden auf dem Handy umgesetzt (entweder weil geändert, zu löschen oder eben neu = keine X-IRMC-LUID vorhanden)
- die Änderungen die im Handy gemacht wurden werden nun auch in der Datenbank von MyPhoneExplorer übernommen (MyPhoneExplorer hat aber Vorrang gegenüber dem Handy)

Weiters folgt dann der Sync mit dem Sync-Ziel:
- zuerst werden die Datensätze des Sync-Ziels geladen
- wenn ein Datensatz in MyPhoneExplorer z.B. die SYNCDB-UID hat dann weiß MyPhoneExplorer dass der Datensatz bereits synchronisiert wurde. Wenn nun dieser Datensatz bei den Daten des Sync-Ziels fehlt dann muß er wohl gelöscht worden sein -> MyPhoneExplorer wird eine Löschung im Handy vorschlagen
- umgekehrt wird ein Datensatz aus dem Sync-Ziel dessen SYNCDB-UID nicht in den Daten von MyPhoneExplorer auftaucht wohl neu sein und MyPhoneExplorer schlägt vor diesen im Handy zu erstellen. MyPhoneExplorer weiß aber natürlich welche Datensätze des Handys beim vorhergehenden Sync gelöscht wurden, also kann er statt dem Hinzufügen im Handy auch das Löschen im Sync-Ziel vorschlagen
- die restlichen Datensätze werden Feld für Feld verglichen. Wenn es einen Unterschied gibt dann kommt es drauf an:
- wenn der Datensatz im Handy oder MyPhoneExplorer geändert wurde dann wird der Datensatz im Sync-Ziel zur Änderung vorgeschlagen
- wenn der Zeitpunkt der letzten Änderung beim Datensatz des Sync-Ziels NACH dem letzten Sync war dann wird die Änderung beim Datensatz im Handy vorgeschlagen
- wenn beides zutrifft dann wird ebenfalls der Datensatz im Handy zur Änderung vorgeschlagen

Die Vorschläge landen dann im Sync-Bestätigungs-Fenster. Dort kann man auch noch ganz einfach über das Umstellen auf z.B. "Erzwinge Handy -> Sync-Ziel" die Vorschläge noch in eine bestimmte Richtung lenken oder den Sync ganz abbrechen. Wichtig: Das Sync-Bestätigungsfenster bezieht sich NUR auf dem Sync mit dem Sync-Ziel und nicht auf den vorhergehenden Sync zwischen MyPhoneExplorer und dem Handy.

Nach deiner Problembeschreibung habe ich bei folgendem Punkt angesetzt und den Code von MyPhoneExplorer nochmal angeschaut:
Zitat:
- bei mehr als 500 Änderungen wird intern ein "Vom Telefon neu laden" gefahren (der Client speichert nicht mehr als die letzten 500 Änderungen)

Bei diesem speziellen "Vom Telefon neu laden" wird ein Feldvergleich mit den vorherigen Datensätzen gemacht (bei Kontakten wird der Name verglichen, bei den Termine die Startzeit). Wenn ein passender "alter" Datensatz gefunden wurde dann wird dieser mit den neuen Daten gefüttert, wenn nicht dann wird er in der Datenbank von MyPhoneExplorer hinzugefügt. Zum Schluss wird dann noch geschaut welche alten Datensätze unangetastet geblieben sind und diese werden dann als "neu" markiert -> und da lag der Hund begraben. Im Gegensatz dazu wird beim normalen manuellen "Vom Handy neu laden" stur heruntergeladen und der Rest in der Datenbank von MyPhoneExplorer gelöscht. Lediglich die Zuordnungen zu den Sync-Zielen werden hier mitgenommen (Stichwort SYNCDB-UID)

Die Sache mit den 500 Einträgen hatte damals eigentlich nur den Grund daß die Datenbank im Client nicht zu groß wird. Wer ändert schon mehr als 500 Einträge auf dem Handy zwischen zwei Synchronisierungen - das waren damals meine Gedanken. Und wenn es wirklich so viele Änderungen gab dann kommt das eher von einem Werksreset und nicht von einer geplanten Löschung - in diesem Fall wäre das bloße Übernehmen der Daten aus dem Handy ja fatal. Naja - wenn man MyPhoneExplorer so wie du einsetzt dann kann das halt eben auch sehr schnell passieren. Und 500 Datensätze waren damals vor 10 Jahren auch noch mehr Holz als heutzutage.

Aber wo legt man eine solche Grenze an? Wenn ich sage ab 1000 geänderter Datensätze dann wird doch sicher jemand daherkommen weil er seinen Kalender ausgemistet hat und mehr als 1000 Termine gelöscht hat...

Das ist sicher einer meiner längsten Posts geworden Very Happy
Ich hoffe ihr steigt da noch durch.

PS.: Wenn du Freude dran hast das Werken von MyPhoneExplorer nachzuvollziehen dann schau dir die Logdatei ein wenig genauer an. Such nach der Zeile "OBEX Get: telecom/cal/luid/cc.Log" die Zeile [RX] darunter sind die Daten die vom Client ankommen - die Hex-Blöcke kopierst du am besten in einen Hex-Editor deiner Wahl. In der cc.log steht der aktuelle ChangeCounter drin. Darunter fordert die PC-Version dann die Änderungsliste seit dem ChangeCounter vom letzten Sync an, also z.B.: OBEX Get: telecom/cal/luid/6zum Beispieldas was da dann ankommt kannst du ebenfalls in den Hex-Editor füttern. Im Prinzip ist es eine Liste von X-IRMC-IDs die MyPhoneExplorer dann überprüft.

_________________
Ich bitte um Verständnis daß ich aufgrund des hohen Aufkommens im Forum und meines zeitlichen Rahmens nichtmehr jeden Thread im Forum persönlich lesen bzw. beantworten kann.

Bitte benutzt auch die Forum-Suche bzw. die FAQ

Zuletzt bearbeitet von FJ am Mi Nov 06, 2019 22:19, insgesamt einmal bearbeitet
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail sendenICQ-Nummer
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 9992

BeitragVerfasst am: Mi Nov 06, 2019 22:15 Antworten mit ZitatNach oben

@FJ
Danke für die ausführliche Erklärung, auf das spezielle Verhalten bei Änderungen >500, wäre ich in der Tat nicht gekommen Wink

Allerdings erklärt das noch nicht dieses merkwürdige Verhalten:
sbw72 hat Folgendes geschrieben:
Wenn ich nämlich (und jetzt kommt quasi der Punkt, an dem ich verständnismässig aussteige) im obigen Beispiel nach Schritt 1.) einen Eintrag auf dem Handy lösche (nennen wir ihn "Eintrag No. 401"), wird er beim nächsten Multi-Sync mit PC1 (!) (Schritt 3.) nicht etwa im Handy neu erstellt, sondern - wie es auch sein soll - gelöscht! Und im Bestätigungs-Dialog für den Sync mit der internen Sync-DB von PC1 erscheint auch brav die entsprechende Löschung. Und zwar, und das ist für mich der "brain twister", auch dann, wenn zum Zeitpunkt der Löschung auf dem Handy keine aktive Verbindung mit der MPE-Instanz auf PC1 bestand. Hätte ich das Handy aber nach der Löschung des Eintrags No. 401 nicht mit PC1, sondern mit PC2 synchronisiert, wäre der Eintrag wieder neu erstellt worden!

Gruß icke

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
MPE Version 1.8.12 nightly / Client 1.0.67 beta
W7 64Bit /Outlook 2010
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
FJ
Site Admin


Anmeldedatum: 15.02.2006
Beiträge: 30370
Wohnort: Tirol

BeitragVerfasst am: Mi Nov 06, 2019 22:21 Antworten mit ZitatNach oben

Ganz ehrlich - ich wusste zwar selbst noch von der Beschränkung mit den 500 Änderungen, hätte aber aus dem Stegreif auch nicht gedacht dass ich das Verhalten damals so programmiert habe. Einer der Stellen des Sourcecodes die ich sehr lange nichtmehr vor Augen hatte Smile

Jetzt hab ich mir den Post noch 3 mal durchgelesen bis ich es verstanden hatte. Ich denke schon dass das passt. Die Begrenzung der 500 Änderungen ist im Client, nicht in MyPhoneExplorer am PC. Nach Schritt 1 - also zu dem Zeitpunkt wo er den Termin am Handy löscht gab es im Handy noch nicht viele Änderungen. Dann werden die Termine - sagen wir zum besseren Verständnis 500 an der Zahl - in MyPhoneExplorer zum Löschen markiert und der Sync wird gestartet. Nun wird MyPhoneExplorer zuerst das Changelog vom Handy laden - da ist ja nur eine einzelne Änderung drin. Dann führt er die Löschungen am Handy aus und zum Schluss holt er sich noch den aktuellen ChangeCounter. Das heißt die Instanz die die vielen Änderungen macht die wird nie ein Problem haben auch nicht bei 2000 gelöschten Datensätzen. Problematisch wirds erst wenn direkt am Handy mehr als 500 Einträge gelöscht werden oder eben eine andere Instanz von MyPhoneExplorer so viele Einträge löscht/ändert.

_________________
Ich bitte um Verständnis daß ich aufgrund des hohen Aufkommens im Forum und meines zeitlichen Rahmens nichtmehr jeden Thread im Forum persönlich lesen bzw. beantworten kann.

Bitte benutzt auch die Forum-Suche bzw. die FAQ
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail sendenICQ-Nummer
icke1954
Moderator


Anmeldedatum: 19.04.2014
Beiträge: 9992

BeitragVerfasst am: Do Nov 07, 2019 08:08 Antworten mit ZitatNach oben

@sbw72
sbw72 hat Folgendes geschrieben:
Hätte ich das Handy aber nach der Löschung des Eintrags No. 401 nicht mit PC1, sondern mit PC2 synchronisiert, wäre der Eintrag wieder neu erstellt worden!


Ist diese Aussage, dass der eine gelöschte Eintrag beim Sync mit PC2 erstellt wird, nur eine Vermutung Deinerseits, weil in der Vergangenheit das mit mehr als 500 gelöschten Datensätzen (Du schriebst übrigens von 400 ?) mal passiert ist, oder ist das Verhalten auf PC2 auch bei weniger als 500 gelöschten Daten im Handy reproduzierbar ?

_________________
Samsung Galaxy S3 / Android 4.3
Samsung Galaxy S5 / Android 6.01
Samsung Galaxy S8 / Android 9.0
MPE Version 1.8.12 nightly / Client 1.0.67 beta
W7 64Bit /Outlook 2010
Benutzer-Profile anzeigenPrivate Nachricht sendenE-Mail senden
Beiträge der letzten Zeit anzeigen:      
Neues Thema eröffnenNeue Antwort erstellen


 Gehe zu:   



Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme :: Alle Zeiten sind GMT + 1 Stunde
Deutsche Übersetzung von phpBB.de