- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
de.espirit.firstspirit.access.template.ParsingError: tag 'ROW' not closed
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
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Marco,
das Problem tritt auf, wenn Projekte inkl. Datenquellen-Inhalte exportiert werden. Unsere Erfahrungen haben gezeigt, dass der Export von groรen Tabellen, in unserem Fall ca. 30.000 Datensรคtze (gezรคhlt ohne Versionshistorie), schon dieses Problem verursachen kann.
Falls Ihr euer Projekt von P nach Q transportieren mรถchtet und die Datenquellen-Inhalte in einer externen DB (Oracle,MySQL,Postgres,..) vorliegen habt, exportiert das Projekt ohne Datenquellen-Inhalte. Das DB-Schema der externen DB solltet Ihr entsprechend klonen und beim Projektimport das Projekt auf das geklonte Schema mappen.
In FS5.2 sollte dieses Problem hoffentlich der Vergangenheit angehรถren. Testen konnte ich dies allerdings noch nicht
Ich hoffe ich konnte Dir weiter helfen.
Beste Grรผรe
Serkan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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

