(too long; didn't read)
Im Gegensatz zu Collabora wird ein großteil der Bearbeitungsfunktionen direkt im Browser des Nutzers ausgeführt, was ein paar Vorteile hat:
Im Hintergrund wird dafür beim Öffnen die Datei in OnlyOffice geladen und in der eigenen Datenbank abgespeichert. Alle Änderungen werden zusätzlich in der Datenbank vermerkt. Sobald die Datei fertig bearbeitet wurde, wird diese zurück nach Nextcloud geschrieben. Dies passiert erst, wenn alle Nutzer die Bearbeitungsansicht verlassen haben.
OnlyOffice zeigt zwar auch zwischendurch an, dass es alle paar Sekunden speichert und man kann dies auch manuell tun, jedoch wird der aktuelle Zustand nur in der OnlyOffice Datenbank vermerkt.
Die neue OnlyOffice App von Nextcloud, welche die Nutzung fast aller Funktionen auch ohne separate OnlyOffice Instanz ermöglich, verhält sich sehr ähnlich. Da aber viele Komponenten in PHP neu geschrieben wurden, ist diese Variante leicht langsamer und stößt früher an ihr Grenzen.
Der Ablauf des Bearbeiten ist generell sehr ähnlich, jedoch werden ein paar Tabellen in der Nextcloud-Datenbank verwendet, anstatt dies auszulagern. Auch hier wird die Datei erst geschrieben, wenn alle Nutzer die Bearbeitungsansicht verlassen haben.
Aufgrund der Art wie Nextcloud und OnlyOffice sich unterscheiden, bekommt diese neue App dies meist nicht sofort mit, sondern erst wenn der Server die regelmäßigen Aufgaben (Cron-Jobs) durchführt, was alle 5 bist 15 Minuten passiert. Es ist also möglich, dass die Datei erst nach 15 Minuten nach Nextcloud geschrieben wird.
Die aktuellen Änderungen sind weiterhin zu sehen wenn man die Datei in OnlyOffice öffnet, aber nicht vorhanden wenn man die Datei in Collabora oder lokal öffnet oder herunterlädt.
Da es ab und zu vorkommt. dass ein Nutzer seinen Tab mit OnlyOffice nicht schließt oder es ein Problem beim Beenden der Verbindung gab, wird die Datei nie nach Nextcloud zurückgeschrieben, da OnlyOffice annimmt, dass noch jemand das Dokument bearbeitet. Dies kann in beiden Varianten der OnlyOffice Integration auftreten[1].
Wird die letzte Verbindung/Session zum Dokument erst geschlossen wenn die Datei in Nextcloud bereits erneut geändert wurde, kann OnlyOffice die Änderungen nicht zurück nach Nextcloud schreiben/speichern. Nichtmal eine zweite Datei mit Informationen zum Konflikt kann angelegt werden, da Nextcloud das ETAG (zufälliger Wert um zu erkennen, ob sich eine Datei geändert hat) einer Datei verwendet um diese im System von Nextcloud zu finden. Hat sich dieses geändert, kann der Rückschluss nicht mehr erfolgen.
Zusätzlich gibt es bei der App-Version beim Rückspeichern von Dateien aus geteilten[5], vor allem Gruppenordnern[6], immer wieder Probleme wegen eines internen Fehlers der erst kürzlich zum Teil gefixt wurde, damit dies bei neuen Dateien nicht mehr auftritt oder zumindest früher auffällt. Bei Dateien bei denen der Fehler vor dem Fix auftrat besteht das Problem jedoch weiterhin.
Da der Speichervorgang bei Fehlern bei einer einzigen Datein stoppt[7,8], wirkt sich das Problem auf nicht betroffene Dateien aus. Auch hierfür gibt es inzwischen einen Fix [9].
Um möglichst schnell die Probleme los zu werden, haben wir umgehend OnlyOffice für alle Nutzer deaktiviert. Um zu Verhindern, dass während der Prüfung und Datenrettung bereits weitere Änderungen an den Dateien vorgenommen werden, haben wir dies auch für Collabora vorgenommen.
Die Strategie war die paar Dateien zu identifizieren die Fehler werfen und verhindern, dass andere Dateien gespeichert werden. Im besten Fall beheben wir die Fehler und die Änderungen an diesen Dateien werden auch gespeichert. Falls dies nicht möglich ist müssen die Änderungnen an diesen Dateien verworfen werden, damit die gesunden Dateien gespeichert werden können. Nur 3 Dateien machten Probleme, 2 davon waren von einem unserer Admins und bekannt. Ein weiterer Nutzer mit dem wir eng in Kontakt stehen war auch betroffen. Hier konnten wir die Änderungen trotz der Probleme per Hand wiederherstellen.
Sobald diese Hürden genommen waren, konnten wir manuell mit folgendem Befehl die in OnlyOffice verbliebenden Änderungen zurück nach Nextcloud schreiben: occ documentserver:flush
(der Befehl wird auch bei der Ausführung des Cron-Jobs durchgeführt)
Für einige wenige Dokumente konnten die Änderungen nicht angewandet werden, da diese sich bereits in Nextcloud geändert hatten. Ein Anwenden auf geänderte Dateien ist nicht möglich. Die Nutzer die betroffen sind werden kontaktiert. Da sie die Dateien bereits selber (lokal oder über einen anderen Editor) bearbeitet haben, solltet Ihnen dies bereits bewusst sein und sich der Datenverlust in Grenzen halten.
Massiv geholfen hat uns die Vorarbeit und Recherche[5] von danielegobbetti auf Github.
Mit Version 5.5.0 des DocumentServers von OnlyOffice wurde die mobile Editierfunktion auf die bezahlte Version eingschränkt[10].
Da dies eine Funktion ist, die gerade erst eingeführt und in die viel Zeit von der Community viel Zeit gesteckt wurde, ist der Ärger darüber sehr groß. Außerdem sind die Preise für uns mit unserer Anzahl von Nutzern nicht tragbar.
Solche Probleme und der generell Umgang mit der Community erschüttert das Vertrauen natürlich und es ist fraglich, ob wir OnlyOffice überhaupt nochmal einsetzen werden. Wenn überhaupt, dann werden wir wieder eine externe Instanz verwenden und den Editor nur für die Microsoft Formate freigeben, wo wir keine Fehler beim Speichern feststellen konnten. Vorerst wird es bei der Nutzung von Collabora, welches wieder aktiviert ist, bleiben. Auch dieses biete eine Funktion zum mobilen Editieren an.
Bei Fragen und Rückmeldungen meldet Euch gerne bei uns.