Methodology for developing Workflow Applications

Aram Khasserdjian <[email protected]> Thu, 29 Sep 2005 17:14:14 -0300 (ART)
Newsgroups gmane.comp.java.enhydra.shark
Message-ID <[email protected]>
Hi everybody,
 
In the past I was assigned to incorporate a workflow system to a e-government. When we started that task, we choosed shark as the workflow engine. We had a lot of issues integrating shark to the project primarily because:
1. the project was almost finished
2. the project was written in C#
 
The workflow engine idea came to us too late. Not because of Shark, but because of the process philosofy in general, we couldn't add workflow into our big app.
 
Today, I am facing new projects and I know workflow can help create applications. At least, that is what I believe. I guess many of you have been in my position. 
I want to know if there is a 'best practice' guide to create comercial applications driven by process definitions. I am looking for a strategy that can allow me develop quickly, visually, and at the same time to have good reports and some flexibility. I wonder what is the best methodology to accomplish this, how you drive your development efforts now that you know you have a workflow engine.
 
Thanks...
Aram
Today, I am trying to  We

Sasa Bojanic <[email protected]> escribió:
Hi,

I sucessfully uploaded this XPDL (and also a much bigger one) into our
Oracle DB (version 8.2.something).

Maybe it is something due Oracle DB configuration (or because of the
version differences ?)

Regards,
Sasa.

It must be
> Hallo Shark Team,
>
> We encoutered errors with the latest Shark CVS Version in connection
> with Oracle 9i. (Version: 9.2.0.1.0) While trying to upload an xpdl we
> get an error, that the maximum size of the blob has been reached (see
> stacktrace below). I attached the xpdl we tried to upload in this mail.
> On MySql and SQL Server this works seemsless.
>
> Do you have an explanation for this?
>
> thanx in advance
>
> Gabriel
>
>
>
> _________________
>
>
> 2005-09-20 17:27:05,446: SharkUtilities -> synchronizing XPDL cache
> 2005-09-20 17:27:14,165: PackageAdmin -> Trying to open Package file
> ApplicationRepository.xpdl
> 2005-09-20 17:27:15,572: SharkUtilities -> synchronizing XPDL cache
> 2005-09-20 17:27:15,931: DODSRepositoryPersistenceManager -> Storing
> XPDL ApplicationRepository, BLOB1 size=4499, BLOB2 size=18554
> java.sql.SQLException: Data Object error: Datengröße größer als max.
> Größe für diesen Typ: 4499
> at
> org.enhydra.shark.repositorypersistence.data.XPDLDataDO.getInsertStatement(XPDLDataDO.java:3396)
> at
> com.lutris.appserver.server.sql.CoreDO.executeInsert(CoreDO.java:342)
> at
> com.lutris.dods.builder.generator.dataobject.GenericDO.executeInsert(GenericDO.java:352)
> at
> org.enhydra.shark.repositorypersistence.data.XPDLDataDO.executeInsert(XPDLDataDO.java:2269)
> at
> com.lutris.appserver.server.sql.standard.StandardDBTransaction.write(StandardDBTransaction.java:654)
> at
> org.enhydra.shark.repositorypersistence.DODSRepositoryPersistenceManager.uploadXPDL(DODSRepositoryPersistenceManager.java:93)
> at
> org.enhydra.shark.PackageAdmin.copyPackagesToInternalPackagesRepository(PackageAdmin.java:881)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:765)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:270)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:251)
> at
> at.workflow.webdesk.wf.sharkimpl.WfProcessDefinitionDAOImpl.uploadXpdl(WfProcessDefinitionDAOImpl.java:565)
> at
> at.workflow.webdesk.wf.sharkimpl.WfImpl.uploadXpdl(WfImpl.java:466)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:174)
> at
> org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:197)
> at
> org.mozilla.javascript.Interpreter.interpret(Interpreter.java:3026)
> at
> org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2164)
> at
> org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:140)
> at
> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:304)
> at
> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2769)
> at
> org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2145)
> at
> org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:140)
> at org.mozilla.javascript.Context.call(Context.java:497)
> at
> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1496)
> at
> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1466)
> at
> org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:843)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:123)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:138)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
> at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
> at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
> at org.apache.cocoon.Cocoon.process(Cocoon.java:608)
> at
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1123)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
> org.enhydra.shark.api.internal.repositorypersistence.RepositoryException:
> DODSRepositoryPersistenceManager -> The upload of xpdl
> ApplicationRepository failed
> at
> org.enhydra.shark.repositorypersistence.DODSRepositoryPersistenceManager.uploadXPDL(DODSRepositoryPersistenceManager.java:95)
> at
> org.enhydra.shark.PackageAdmin.copyPackagesToInternalPackagesRepository(PackageAdmin.java:881)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:765)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:270)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:251)
> at
> at.workflow.webdesk.wf.sharkimpl.WfProcessDefinitionDAOImpl.uploadXpdl(WfProcessDefinitionDAOImpl.java:565)
> at
> at.workflow.webdesk.wf.sharkimpl.WfImpl.uploadXpdl(WfImpl.java:466)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:174)
> at
> org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:197)
> at
> org.mozilla.javascript.Interpreter.interpret(Interpreter.java:3026)
> at
> org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2164)
> at
> org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:140)
> at
> org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:304)
> at
> org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2769)
> at
> org.mozilla.javascript.Interpreter.interpret(Interpreter.java:2145)
> at
> org.mozilla.javascript.InterpretedFunction.call(InterpretedFunction.java:140)
> at org.mozilla.javascript.Context.call(Context.java:497)
> at
> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1496)
> at
> org.mozilla.javascript.ScriptableObject.callMethod(ScriptableObject.java:1466)
> at
> org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:843)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:123)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.ActTypeNode.invoke(ActTypeNode.java:138)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
> at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:138)
> at
> org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
> at
> org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
> at
> org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
> at
> org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:243)
> at org.apache.cocoon.Cocoon.process(Cocoon.java:608)
> at
> org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1123)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:172)
> at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
> at
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:534)
> Caused by: java.sql.SQLException: Data Object error: Datengröße größer
> als max. Größe für diesen Typ: 4499
> at
> org.enhydra.shark.repositorypersistence.data.XPDLDataDO.getInsertStatement(XPDLDataDO.java:3396)
> at
> com.lutris.appserver.server.sql.CoreDO.executeInsert(CoreDO.java:342)
> at
> com.lutris.dods.builder.generator.dataobject.GenericDO.executeInsert(GenericDO.java:352)
> at
> org.enhydra.shark.repositorypersistence.data.XPDLDataDO.executeInsert(XPDLDataDO.java:2269)
> at
> com.lutris.appserver.server.sql.standard.StandardDBTransaction.write(StandardDBTransaction.java:654)
> at
> org.enhydra.shark.repositorypersistence.DODSRepositoryPersistenceManager.uploadXPDL(DODSRepositoryPersistenceManager.java:93)
> ... 76 more
> 2005-09-20 17:27:16,119: PackageAdmin -> Package file
> C:\j2ee\jakarta-tomcat-5.0.28\webapps\webdesk3\WEB-INF\work\repository\ApplicationRepository.xpdl
> failed to open
> 2005-09-20 17:27:16,150: Rollback of Repository transaction happened.
> java.sql.SQLException: Data Object error: Datengröße größer als max.
> Größe für diesen Typ: 4499
> at
> org.enhydra.shark.repositorypersistence.data.XPDLDataDO.getInsertStatement(XPDLDataDO.java:3396)
> at
> com.lutris.appserver.server.sql.CoreDO.executeInsert(CoreDO.java:342)
> at
> com.lutris.dods.builder.generator.dataobject.GenericDO.executeInsert(GenericDO.java:352)
> at
> org.enhydra.shark.repositorypersistence.data.XPDLDataDO.executeInsert(XPDLDataDO.java:2269)
> at
> com.lutris.appserver.server.sql.standard.StandardDBTransaction.write(StandardDBTransaction.java:654)
> at
> org.enhydra.shark.repositorypersistence.DODSRepositoryPersistenceManager.uploadXPDL(DODSRepositoryPersistenceManager.java:93)
> at
> org.enhydra.shark.PackageAdmin.copyPackagesToInternalPackagesRepository(PackageAdmin.java:881)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:765)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:270)
> at
> org.enhydra.shark.PackageAdmin.openPackage(PackageAdmin.java:251)
> at
> at.workflow.webdesk.wf.sharkimpl.WfProcessDefinitionDAOImpl.uploadXpdl(WfProcessDefinitionDAOImpl.java:565)
> at
> at.workflow.webdesk.wf.sharkimpl.WfImpl.uploadXpdl(WfImpl.java:466)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)

=== message truncated ===
--
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws

		
---------------------------------
 1GB gratis, Antivirus y Antispam
 Correo Yahoo!, el mejor correo web del mundo
 Abrí tu cuenta aquí
message-footer.txt (text/plain, 271 B)
--
You receive this message as a subscriber of the [email protected] mailing list.
To unsubscribe: mailto:[email protected]
For general help: mailto:[email protected]?subject=help
ObjectWeb mailing lists service home page: http://www.objectweb.org/wws