Hi,

i tried to run a workflow with two identical nested workflows (imported
from the same file) with the taverna command line tool. When running it
with "-provenance" as:
    executeworkflow.sh -provenance -embedded 2_Nested_Workflows.t2flow
or
    executeworkflow.sh -provenance -clientserver -startdb
2_Nested_Workflows.t2flow
i get the following error message:

Started Derby Server on Port: 1527
Outputs will be saved to the directory:
/home/markus/Dropbox/Projekte/RAWverna/Workflow/Evaluation/test/Workflow14_output_5
ERROR 2012-01-11 15:31:25,177
(net.sf.taverna.t2.provenance.lineageservice.EventProcessor:515) -
Problem processing provenance for dataflow
java.sql.SQLIntegrityConstraintViolationException: The statement was
aborted because it would have caused a duplicate key value in a unique
or primary key constraint or unique index identified by
'SQL120111150128280' defined on 'WORKFLOWRUN'.
    at
org.apache.derby.client.am.SQLExceptionFactory40.getSQLException(Unknown
Source)
    at org.apache.derby.client.am.SqlException.getSQLException(Unknown
Source)
    at
org.apache.derby.client.am.PreparedStatement.executeUpdate(Unknown Source)
    at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
    at
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
    at
net.sf.taverna.t2.provenance.lineageservice.ProvenanceWriter.addWorkflowRun(ProvenanceWriter.java:274)
    at
net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processDataflowStructure(EventProcessor.java:302)
    at
net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processDataflowStructure(EventProcessor.java:394)
    at
net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processWorkflowStructure(EventProcessor.java:221)
    at
net.sf.taverna.t2.provenance.lineageservice.EventProcessor.processWorkflowStructure(EventProcessor.java:184)
    at
net.sf.taverna.t2.provenance.lineageservice.Provenance.processEvent(Provenance.java:187)
    at
net.sf.taverna.t2.provenance.lineageservice.Provenance.acceptRawProvenanceEvent(Provenance.java:141)
    at
net.sf.taverna.t2.provenance.connector.ProvenanceConnector.addProvenanceItem(ProvenanceConnector.java:359)
    at
net.sf.taverna.t2.facade.impl.WorkflowInstanceFacadeImpl.fire(WorkflowInstanceFacadeImpl.java:239)
    at
net.sf.taverna.t2.commandline.CommandLineLauncher.executeWorkflow(CommandLineLauncher.java:293)
    at
net.sf.taverna.t2.commandline.CommandLineLauncher.setupAndExecute(CommandLineLauncher.java:256)
    at
net.sf.taverna.t2.commandline.CommandLineLauncher.launch(CommandLineLauncher.java:111)
    at net.sf.taverna.raven.launcher.Launcher.launchMain(Launcher.java:150)
    at net.sf.taverna.raven.launcher.Launcher.main(Launcher.java:66)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at
net.sf.taverna.raven.prelauncher.PreLauncher.runLauncher(PreLauncher.java:115)
    at
net.sf.taverna.raven.prelauncher.PreLauncher.launchArgs(PreLauncher.java:69)
    at
net.sf.taverna.raven.prelauncher.PreLauncher.main(PreLauncher.java:47)
Caused by: org.apache.derby.client.am.SqlException: The statement was
aborted because it would have caused a duplicate key value in a unique
or primary key constraint or unique index identified by
'SQL120111150128280' defined on 'WORKFLOWRUN'.
    at org.apache.derby.client.am.Statement.completeExecute(Unknown Source)
    at
org.apache.derby.client.net.NetStatementReply.parseEXCSQLSTTreply(Unknown 
Source)
    at org.apache.derby.client.net.NetStatementReply.readExecute(Unknown
Source)
    at org.apache.derby.client.net.StatementReply.readExecute(Unknown
Source)
    at
org.apache.derby.client.net.NetPreparedStatement.readExecute_(Unknown
Source)
    at org.apache.derby.client.am.PreparedStatement.readExecute(Unknown
Source)
    at org.apache.derby.client.am.PreparedStatement.flowExecute(Unknown
Source)
    at
org.apache.derby.client.am.PreparedStatement.executeUpdateX(Unknown Source)
    ... 24 more

The problem dissappears when i modify one of the embedded workflows. Am
I missing something here or is this a bug when Taverna tries to add both
nested workflows with the same ID to the DB?

Attached is a simple workflow used for testing.

Regards,

Markus
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow"; version="1" 
producedBy="taverna-2.3.0"><dataflow id="e4c5e31f-963e-401e-a731-c71aa8cd683f" 
role="top"><name>Workflow14</name><inputPorts 
/><outputPorts><port><name>out1</name><annotations 
/></port><port><name>out2</name><annotations 
/></port></outputPorts><processors><processor><name>Nested_workflow</name><inputPorts
 
/><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>dataflow-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</class><inputMap
 /><outputMap><map from="value" to="value" /></outputMap><configBean 
encoding="dataflow"><dataflow ref="9b3387ea-13aa-4f97-bc5c-b309025ccd0f" 
/></configBean><annotations 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy
 
/></iteration></iterationStrategyStack></processor><processor><name>Nested_workflow_2</name><inputPorts
 
/><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>dataflow-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.dataflow.DataflowActivity</class><inputMap
 /><outputMap><map from="value" to="value" /></outputMap><configBean 
encoding="dataflow"><dataflow ref="9b3387ea-13aa-4f97-bc5c-b309025ccd0f" 
/></configBean><annotations 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy
 /></iteration></iterationStrategyStack></processor></processors><conditions 
/><datalinks><datalink><sink type="dataflow"><port>out1</port></sink><source 
type="processor"><processor>Nested_workflow</processor><port>value</port></source></datalink><datalink><sink
 type="dataflow"><port>out2</port></sink><source 
type="processor"><processor>Nested_workflow_2</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2
 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
  <annotationAssertions>
    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
      <annotationBean 
class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
        <identification>e4c5e31f-963e-401e-a731-c71aa8cd683f</identification>
      </annotationBean>
      <date>2012-01-11 15:22:12.418 CET</date>
      <creators />
      <curationEventList />
    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
  </annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow><dataflow
 id="9b3387ea-13aa-4f97-bc5c-b309025ccd0f" 
role="nested"><name>Workflow13</name><inputPorts 
/><outputPorts><port><name>value</name><annotations 
/></port></outputPorts><processors><processor><name>String_constant</name><inputPorts
 
/><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations
 
/><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap
 /><outputMap><map from="value" to="value" /></outputMap><configBean 
encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean
 xmlns="">
  <value>Value</value>
</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations
 
/></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig
 xmlns="">
  <maxJobs>1</maxJobs>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean
 
encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig
 xmlns="">
  <backoffFactor>1.0</backoffFactor>
  <initialDelay>1000</initialDelay>
  <maxDelay>5000</maxDelay>
  <maxRetries>0</maxRetries>
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.3</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean
 encoding="xstream"><null xmlns="" 
/></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy
 /></iteration></iterationStrategyStack></processor></processors><conditions 
/><datalinks><datalink><sink type="dataflow"><port>value</port></sink><source 
type="processor"><processor>String_constant</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2
 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
  <annotationAssertions>
    <net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
      <annotationBean 
class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
        <identification>9b3387ea-13aa-4f97-bc5c-b309025ccd0f</identification>
      </annotationBean>
      <date>2012-01-11 15:21:30.482 CET</date>
      <creators />
      <curationEventList />
    </net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
  </annotationAssertions>
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual 
desktops for less than the cost of PCs and save 60% on VDI infrastructure 
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
taverna-users mailing list
[email protected]
[email protected]
Web site: http://www.taverna.org.uk
Mailing lists: http://www.taverna.org.uk/about/contact-us/

Reply via email to