de.espirit.firstspirit.access.template.ParsingError: tag 'ROW' not closed
Author: mschmidt
Publication Date: 7/26/2016 12:26
Hallo zusammen,
ich habe einen Export unseres Live Projektes durchgeführt und wollte es auf dem Q-Server wieder importieren.
Leider bekomme ich beim Importieren folgende Fehlermeldung:
de.espirit.firstspirit.access.template.ParsingError: tag 'ROW' not closed
FirstSpirit Version: 4.2.507.71601
26.07.2016 12:37:28.328 Importing presentation channels
26.07.2016 12:37:28.328 Importing annotations
26.07.2016 12:37:28.330 Importing conversion tables
26.07.2016 12:37:30.094 Error importing project -- Q5 -- - de.espirit.firstspirit.access.template.ParsingError: tag 'ROW' not closed (at line 2, column 48918878)
26.07.2016 12:37:30.094 FSVersion=4.2.507.71601#2272;JDK=1.6.0_38 64bit Sun Microsystems Inc.;OS=Linux 2.6.18-308.8.2.el5 amd64;Date=26.07.2016 12:37:30
de.espirit.firstspirit.access.template.ParsingError: tag 'ROW' not closed (at line 2, column 48918878)
at de.espirit.firstspirit.parser.impl.XmlPullParser.readNode(XmlPullParser.java:289)
at de.espirit.firstspirit.parser.impl.XmlPullParser._readToken(XmlPullParser.java:221)
at de.espirit.firstspirit.parser.impl.XmlPullParser.readToken(XmlPullParser.java:183)
at de.espirit.firstspirit.server.export.importhandler.TableDataHandler.analyseTableRowCount(TableDataHandler.java:161)
at de.espirit.firstspirit.server.export.importhandler.TableDataHandler.analyse(TableDataHandler.java:64)
at de.espirit.firstspirit.server.export.ProjectImporter.call(ProjectImporter.java:343)
at de.espirit.firstspirit.server.export.ProjectImporter.call(ProjectImporter.java:65)
at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:415)
at de.espirit.firstspirit.server.action.ServerActionManagerImpl$ServerActionCallableWrapper.call(ServerActionManagerImpl.java:396)
at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:521)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)
Kennt jemand dieses Problem und kann mir einen Tipp geben, woran dies liegen könnte und vielleicht auch, wie dieses zu beheben ist?
Danke und viele Grüße
Marco
-
Author: hoebbel - 8/1/2016 9:36
Hallo Marco,
die Aussage von Serkan ist im Prinzip richtig (und bei großen Datenbanktabellen auch das empfohlene Vorgehen).
Falls dieser Weg nicht möglich ist (weil die Datenbank geändert werden soll, weil die Daten im Export komplett sein sollen, ...), kann der Export normalerweise auch mit FirstSpirit Mitteln duchgeführt werden.
Ursache des Problems ist, dass beim Export die Verbindung zur Datenbank gekappt wurde, da der Zugriff zu lange dauert.
Lösung ist es somit, dieses Timeout zu erhöhen.
Dazu einfach folgendes tun:
- Server und Projekt Konfiguration mit dem Benutzer Admin öffnen
- Unter Server/Eigenschaften->Datenbanken die entsprechende Konfiguration bearbeiten
- Für die Parameter
jdbc.POOLTIMEOUT=
jdbc.CONNECTIONTIMEOUT=
jeweils einen Wert (in Sekunden!) eintragen, der größer ist als die Dauer des Exportes. Sind diese Parameter noch nicht vorhanden, so müssen diese hinzugefügt werden.
Dabei sollte man berücksichtigen, dass der Export im Fehlerfall schneller ausgeführt wird, da nicht die kompletten Datenbankinhalte transferiert werden. Ein entsprechender Sicherheitspuffer sollte also eingeplant werden.
Natürlich müssen auf Datenbankseite die Timeouts auch entsprechend hoch sein, da ansonsten die Verbindung von dort unterbrochen wird, was zum selben Ergebnis führt.
Viele Grüße aus Dortmund,
Holger
0
Please sign in to leave a comment.
Comments
1 comment