0
votes

This is a follow-up to this question...

After quite a lot of trial-and-error, we simply can't get the Orbeon form builder working, period. Even reinstalling from scratch on a fresh system does not seem to work, and we are at a loss on how to proceed.

We are thinking we will need to learn the XML syntax and "hand-edit" new forms until this is resolved. As a simple test, we tried taking an existing form from the MySQL "orbeon.orbeon_form_definitions" table and copying it unchanged to another system. Although the form works properly on the originating system, when we move it to another Orbeon instance this way, we are seeing exceptions when trying to run the new form (by invoking "fr/app/form/new"). Thus, we can't even create forms by hand.

The debugging log reveals this:

INFO ProcessorService - /fr/app/formname/new - Received request INFO ProcessorService - /fr/service/persistence/crud/app/formname/form/form.xhtml - Received request INFO ProcessorService - /fr/service/mysql/crud/app/formname/form/form.xhtml - Received request INFO ProcessorService - /fr/service/persistence/form/app/formname - Received request INFO ProcessorService - /fr/service/mysql/form/app/formname - Received request INFO ProcessorService - /fr/service/mysql/form/app/formname - Timing: 784 INFO DatabaseContext - Committing JDBC connection for datasource: jdbc/mysql. INFO ProcessorService - /fr/service/persistence/form/app/formname - Timing: 964 INFO ProcessorService - /fr/service/mysql/crud/app/formname/form/form.xhtml - Timing: 4285 INFO DatabaseContext - Committing JDBC connection for datasource: jdbc/mysql. INFO ProcessorService - /fr/service/persistence/crud/app/formname/form/form.xhtml - Timing: 4827 ERROR PageFlowControllerProcessor - error caught {controller: "oxf:/apps/fr/page-flow.xml", method: "GET", path: "/fr/app/formname/new"} ERROR PageFlowControllerProcessor - +---------------------------------------------------------------------------------------------------+ |An Error has Occurred | |---------------------------------------------------------------------------------------------------| |Fatal error: Premature end of file. |

Configuration is Orbeon 4.4CE, MySQL 5.6 persistence layer, Tomcat 7.0.52, Java 1.7.67 and Ubuntu 14.04.

Two questions:

  • What are we doing wrong?
  • Is there any better way to diagnose this sort of problem?
1
1. Does "not working" mean even using the builtin eXist database? Or is it by connecting to your existing MySQL database? 2. The "Premature end of file" error means that parsing the form definition failed. It might indicate an empty form.xhtml in the database. I can only conclude that the copy from one database to the other was not done right, somehow. 3. The MAIN question is why would Form Builder stop working? This is definitely not right. Can you send Orbeon a db dump? - ebruchez
Thanks for checking in...the most curious part of the problem was that we have more or less identical configurations running in about five different systems, and all stopped working in exactly the same way and at exactly the same time. - Valerie R
The unexpected good news is that just as suddenly as the problem appeared, it is now resolved. Everything that had been broken on all of our systems is once again working correctly. The only conclusion we are able to draw is that there's an external reference (perhaps to an XML schema or some such thing) that had been corrupted temporarily and was suddenly repaired. - Valerie R

1 Answers

1
votes

It's not really much of an answer, but all of our systems that had been impacted suddenly began to work correctly again , and as far as we can tell, it had nothing to do with anything we changed.

We are thinking that Orbeon must retrieve some sort of external content - perhaps XML schemas, for example - and for a few days, the content being fetched was corrupted. Should the problem occur again, we will run with a network monitor to see what (if any) external requests were issued. We see no other way to explain why a stable system would suddenly fail - across five Orbeon instances running in different datacenters and on different networks.