Questions & Answers

SOLVED
mschmidt
New Creator

de.espirit.firstspirit.access.template.ParsingError: tag 'ROW' not closed

Jump to solution

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

0 Kudos
1 Solution

Accepted Solutions
hoebbel
Crownpeak employee

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

View solution in original post

0 Kudos
2 Replies
sbalkan
I'm new here

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 Smiley Happy

Ich hoffe ich konnte Dir weiter helfen.

Beste GrรผรŸe

Serkan

0 Kudos
hoebbel
Crownpeak employee

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 Kudos

Type a product name