Page 1 of 1

oXygen XML Developer and eXist timeout with crosslinked modules

Posted: Wed Feb 24, 2016 5:52 pm
by hyttinen
We have written an app with the eXist template system which resides in an external eXist server which we connect to with oXygen XML developer.

The modules collection/folder of the app has multiple modules written in xquery. They import one another with the import module namespace command and use functions from each other. So you could say they are very throroughly cross-linked.
They are quite large roughly 6000 lines altogether.

When we save any of the modules, we have noticed that they save progressively slower after each save. Ultimately they will stop saving and the save process times out. Sometimes you can save 3 times and other times 30.

Code: Select all

Cannot save the file: Failed to read server's response: Read timed out


Then the collection cannot be opened anymore and only restarting eXist helps. A thread saving the binary seems to get stuck inside eXist.

When we moved all the code into a single file, the save problems vanished.
We tried eXide (the built in eXist editor) and it saves the crosslinked modules without timing out.

We also tested with a local eXist setup and the problems remained.

Is there something we need to know of the way oxygen saves crosslinked modules? Is it something to be avoided? Is there some setting we could fiddle with inside oxygen?

Best regards,
Lauri Hyttinen

Re: oXygen XML Developer and eXist timeout with crosslinked modules

Posted: Tue Mar 01, 2016 12:49 pm
by adrian
Hello,

What version of eXist-db are you using with Oxygen?

How did you configure the eXist-db connection in Oxygen? Did you use the connection wizard (Create eXist-db XML connection) from Options > Preferences, "Data Sources"?

To interact with eXist-db Oxygen uses the XML:DB API:
http://exist-db.org/exist/apps/doc/devguide_xmldb.xml
When saving, Oxygen uses Collection.storeResource(). It doesn't treat cross-linked modules differently than any other non-XML resource.

Code: Select all

Cannot save the file: Failed to read server's response: Read timed out

Then the collection cannot be opened anymore and only restarting eXist helps. A thread saving the binary seems to get stuck inside eXist.

After this happens have you tried restarting just Oxygen (without restarting eXist)?
Does restarting just Oxygen resolve the issue? If that doesn't fix anything, the problem may be server side.
Have you tried looking in the eXist-db logs for clues?

Regards,
Adrian