Use of MS SQL database for Orbeon Forms and Form Runner

classic Classic list List threaded Threaded
7 messages Options
M K
Reply | Threaded
Open this post in threaded view
|

Use of MS SQL database for Orbeon Forms and Form Runner

M K
Hello,

We need to use MS SQL database for Orbeon Forms and intergrating with Liferay using Form Runner.

Is this possible? or Do we need to go for MySQL or Oracle database to configure Orbeon?

If possible, Do I get any doucumentations on MS SQL configuration with Orbeon, because I have seen only the MySQL and Oracle documentation for configuring with Orbeon.

Any information will be very helpful to me.

Regards,
Kiran MK

--
You received this message because you are subscribed to the Google Groups "Orbeon Forms" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
To post to this group, send email to [hidden email].
 
 
Reply | Threaded
Open this post in threaded view
|

Re: Use of MS SQL database for Orbeon Forms and Form Runner

Alessandro  Vernet
Administrator
[I am reposting this answer, as it seems that first message in the original thread didn't make it to the mailing list, and was only visible on http://discuss.orbeon.com/.]

Hi Kiran,

Your findings are correct: for forms you create with Form Builder, for persistence, Orbeon Forms calls a REST API, and Orbeon Forms comes with implementations of this REST API for eXist, MySQL, and Oracle. For other databases, you would have to implement the REST API yourself. (Or this is something that Orbeon can do for you as a "sponsored feature", under a Dev Support plan, and the feature would then become par of the product.)

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Use of MS SQL database for Orbeon Forms and Form Runner

Kiran Kumar M K
Thanks Alex for the information. We will further discuss about the use of MS SQL with Orbeon as sponsered feature. Meanwhile, I was trying the persistence layer of MySQL. But the data are not saving once I press the 'Save' button in default bookshelf form.

Steps:
- Configured jboss-as-7.1.1.Final
- Deployed the liferay: liferay-portal-6.1.1-ce-ga2-20120731132656558.war
- Deployed the orbeon.war (orbeon-4.0.1.201303152357-PE)
- Deployed the proxy-portlet.war (orbeon-4.0.1.201303152357-PE) as Form Runner.
- Set up mysql datasource as listed in the link (http://wiki.orbeon.com/forms/doc/developer-guide/admin/installing) by creating tables in schema, jbos-web.xml, standalone.xml configuration.
- Configured properties-local.xml as below
<property as="xs:anyURI" name="oxf.fr.persistence.provider.*.*.*" value="mysql"/>
<property as="xs:string" name="oxf.fr.persistence.mysql.datasource" value="mysql"/>
Error:
Getting error: When I enter data into bookshelf form and press save I'm getting pop up error as "Error while communicating with database. Please contact application administrator".

Orbeon.log:
2013-04-09 01:12:59,770 INFO  ProcessorService  - /fr/service/persistence/crud/orbeon/bookshelf/data/15dc56d69650400951685c1e7d23550d03d65b0c/data.xml - Received request
2013-04-09 01:12:59,834 ERROR PageFlowControllerProcessor  - error caught {controller: "oxf:/apps/fr/page-flow.xml", method: "PUT", path: "/fr/service/persistence/crud/orbeon/bookshelf/data/15dc56d69650400951685c1e7d23550d03d65b0c/data.xml"}
2013-04-09 01:12:59,877 ERROR PageFlowControllerProcessor  -
+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred                                                                                                 |
|----------------------------------------------------------------------------------------------------------------------|
|Invalid attribute type requested for property 'oxf.fr.persistence.provider.orbeon.bookshelf.data': expected xs:string,|
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack                                                                                                |
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/persistence/proxy.xpl                       |  18|  47|executing processor                               |
|oxf:/apps/fr/page-flow.xml                               |  18|  79|reading page model data output                    |
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.OXFException                                                                         |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.properties.PropertySet              |checkType$1                   |PropertySet.scala             | 172|
|org.orbeon.oxf.properties.PropertySet$$anonfun$getP|apply                         |PropertySet.scala             | 176|
|org.orbeon.oxf.properties.PropertySet$$anonfun$getP|apply                         |PropertySet.scala             | 176|
|scala.Option                                       |map                           |Option.scala                  | 133|
|org.orbeon.oxf.properties.PropertySet              |getProperty                   |PropertySet.scala             | 176|
|org.orbeon.oxf.properties.PropertySet              |getPropertyValue              |PropertySet.scala             | 182|
|org.orbeon.oxf.properties.PropertySet              |getString                     |PropertySet.scala             | 205|
|org.orbeon.oxf.fr.FormRunner$                      |getPersistenceURLHeaders      |FormRunner.scala              | 141|
|org.orbeon.oxf.fr.FormRunnerPersistenceProxy       |proxyRequest                  |FormRunnerPersistenceProxy.sca|  85|
|org.orbeon.oxf.fr.FormRunnerPersistenceProxy       |proxyRequest                  |FormRunnerPersistenceProxy.sca|  61|
|org.orbeon.oxf.fr.FormRunnerPersistenceProxy       |start                         |FormRunnerPersistenceProxy.sca|  53|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 617|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.ValidationException                                                                  |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.common.ValidationException          |wrapException                 |ValidationException.java      | 126|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 619|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren               |PipelineProcessor.java        | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start                         |PipelineProcessor.java        | 614|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 617|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren               |PipelineProcessor.java        | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start                         |PipelineProcessor.java        | 614|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|getInput                      |PipelineProcessor.java        | 140|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|readImpl                      |PipelineProcessor.java        |  83|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.pipeline.choose.ConcreteCh|readImpl                      |ConcreteChooseProcessor.java  | 127|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 262|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 266|
|org.orbeon.oxf.processor.IdentityProcessor$1       |readImpl                      |IdentityProcessor.java        |  34|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 262|
|---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 262|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        |  92|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren               |PipelineProcessor.java        | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$000                    |PipelineProcessor.java        |  59|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|readImpl                      |PipelineProcessor.java        |  90|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.pipeline.choose.ConcreteCh|readImpl                      |ConcreteChooseProcessor.java  | 127|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 262|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 535|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeParents                |PipelineProcessor.java        | 696|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$400                    |PipelineProcessor.java        |  59|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|readImpl                      |PipelineProcessor.java        | 531|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 262|
|org.orbeon.oxf.processor.ProcessorImpl             |readInputAsSAX                |ProcessorImpl.java            | 266|
|org.orbeon.oxf.processor.NullSerializer            |start                         |NullSerializer.java           |  28|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.OXFException                                                                         |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.processor.NullSerializer            |start                         |NullSerializer.java           |  30|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 617|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.ValidationException                                                                  |
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.common.ValidationException          |wrapException                 |ValidationException.java      | 126|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 619|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren               |PipelineProcessor.java        | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start                         |PipelineProcessor.java        | 614|
|org.orbeon.oxf.processor.pipeline.choose.ConcreteCh|start                         |ConcreteChooseProcessor.java  | 248|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 617|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren               |PipelineProcessor.java        | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start                         |PipelineProcessor.java        | 614|
|org.orbeon.oxf.controller.PageFlowControllerProcess|process                       |PageFlowControllerProcessor.sc| 474|
|org.orbeon.oxf.controller.PageFlowControllerProcess|start                         |PageFlowControllerProcessor.sc| 165|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|run                           |PipelineProcessor.java        | 617|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren               |PipelineProcessor.java        | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start                         |PipelineProcessor.java        | 614|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|getInput                      |PipelineProcessor.java        | 140|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|readImpl                      |PipelineProcessor.java        |  83|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|org.orbeon.oxf.processor.pipeline.choose.ConcreteCh|readImpl                      |ConcreteChooseProcessor.java  | 127|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl$T|read                          |ProcessorOutputImpl.java      | 258|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl  |read                          |ProcessorOutputImpl.java      | 404|
|---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---|
|com.liferay.portal.kernel.servlet.filters.invoker.I|doFilter                      |InvokerFilterChain.java       |  72|
|com.liferay.portal.kernel.servlet.filters.invoker.I|processDirectCallFilter       |InvokerFilterChain.java       | 167|
|com.liferay.portal.kernel.servlet.filters.invoker.I|doFilter                      |InvokerFilterChain.java       |  95|
|com.liferay.portal.kernel.servlet.PortalClassLoader|doFilter                      |PortalClassLoaderFilter.java  |  70|
|com.liferay.portal.kernel.servlet.filters.invoker.I|processDoFilter               |InvokerFilterChain.java       | 206|
|com.liferay.portal.kernel.servlet.filters.invoker.I|doFilter                      |InvokerFilterChain.java       | 108|
|com.liferay.portal.kernel.servlet.filters.invoker.I|doFilter                      |InvokerFilter.java            |  73|
|org.apache.catalina.core.ApplicationFilterChain    |internalDoFilter              |ApplicationFilterChain.java   | 280|
|org.apache.catalina.core.ApplicationFilterChain    |doFilter                      |ApplicationFilterChain.java   | 248|
|org.apache.catalina.core.StandardWrapperValve      |invoke                        |StandardWrapperValve.java     | 275|
|org.apache.catalina.core.StandardContextValve      |invoke                        |StandardContextValve.java     | 161|
|org.jboss.as.web.security.SecurityContextAssociatio|invoke                        |SecurityContextAssociationValv| 153|
|org.apache.catalina.core.StandardHostValve         |invoke                        |StandardHostValve.java        | 155|
|org.apache.catalina.valves.ErrorReportValve        |invoke                        |ErrorReportValve.java         | 102|
|org.apache.catalina.core.StandardEngineValve       |invoke                        |StandardEngineValve.java      | 109|
|org.apache.catalina.connector.CoyoteAdapter        |service                       |CoyoteAdapter.java            | 368|
|org.apache.coyote.http11.Http11Processor           |process                       |Http11Processor.java          | 877|
|org.apache.coyote.http11.Http11Protocol$Http11Conne|process                       |Http11Protocol.java           | 671|
|org.apache.tomcat.util.net.JIoEndpoint$Worker      |run                           |JIoEndpoint.java              | 930|
|java.lang.Thread                                   |run                           |Thread.java                   | 662|
+----------------------------------------------------------------------------------------------------------------------+ {}


I'm not sure where I have gone wrong. Gone through several docs on this but unable to find the cause. Please advice on this and let me know for any other information.
Reply | Threaded
Open this post in threaded view
|

Re: Use of MS SQL database for Orbeon Forms and Form Runner

phil
In reply to this post by M K
FWIW, I've been advising for an ongoing capstone project for my department at East Tennessee State University that is using an Orbeon front end with an SQL Server 2008 back end. Over the last two years, my graduate students have written a chunk of Java/JSP middleware to interface the front and back ends. The logic seems to work quite well. Since I'm not as familiar with the middleware as I am with the forms and our model, I can't tell you exactly how the code was crafted. I do know, however, that it was a reasonably straightforward task, once we understood what Orbeon produces and SQL Server requires. If you're interested, I can refer you to an excellent graduating M.S. student who's looking for work and an H-1B sponsor . =================== Phil Pfeiffer/ East TN State U. | Kindness in thought leads to wisdom. Dept. of CIS / P.O. Box 70711 | Kindness in speech leads to eloquence. Johnson City, TN. 37614-1266 | Kindness in action leads to love. phil@etsu.edu (423) 439-5355 | -- Lao-Tsu
Reply | Threaded
Open this post in threaded view
|

Re: Use of MS SQL database for Orbeon Forms and Form Runner

Alessandro  Vernet
Administrator
In reply to this post by Kiran Kumar M K
Hi Kiran,

A couple of things:

1. Specifically for the Bookshelf example (and some other built-in) examples, we have properties defined to get the form from eXist. For instance, we have the following in properties-form-runner.xml (see link below for source).

<property as="xs:string"  name="oxf.fr.persistence.provider.orbeon.bookshelf.form" value="exist"/>

https://github.com/orbeon/orbeon-forms/blob/master/src/resources-packaged/config/properties-form-runner.xml

This is just an FYI, as it doesn't explain the error you're seeing.

2. The error you're getting happens because Orbeon Forms tries to read the oxf.fr.persistence.provider.orbeon.bookshelf.data property, and finds a matching property, but the type doesn't match. This is because the type of those oxf.fr.persistence.provider properties need to be xs:string, and you defined yours as xs:anyURI. Could you try changing that property in your properties-local.xml from xs:anyURI to xs:string, to see if that solves the problem?

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply | Threaded
Open this post in threaded view
|

Re: Use of MS SQL database for Orbeon Forms and Form Runner

Kiran Kumar M K
Hi Alex,

Thanks for your suggestions. I tried with options you have given here, it worked me after configuring with proper datasource.


Regards
Kiran MK
Reply | Threaded
Open this post in threaded view
|

Re: Use of MS SQL database for Orbeon Forms and Form Runner

Alessandro  Vernet
Administrator
Hi Kiran,

Excellent, and thank you for confirming this.

Alex
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet