On Wed, Aug 25, 2010 at 12:22, Dennis Neumann <[email protected]> wrote:
> My database Version 5.1 runs on a Windows XP machine. The user has all
> privileges granted. I create a database named T2Provenance manually and
> run a workflow. The connection to the database works fine, since 13
> tables are created, some of them with content. Specifically, the table
> inlinestringreference contains the input values of the executed
> workflow. In the terminal, I get the following error:

> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key
> was too long; max key length is 1000 bytes

It is true that some of the provenance table schema changed for 2.2.0.

I believe it is the primary key of the tables Collection and
PortBinding that fails, as their composite primary keys are too large
for mySQL.

These primary keys are not ideal, but these are transitionary tables
that we were planning to remove anyway.


I've tracked this as
http://www.mygrid.org.uk/dev/issues/browse/T2-1605 and committed a fix
which should make it to the nightly build and the next release.


As a workaround for Taverna 2.2 you can try to create the tables
yourself with a modified schema. I've attached the modified schema to
this email. To install it, do like this:


r...@ralph:~# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 105
Server version: 5.1.41-3ubuntu12.6 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> drop database T2Provenance;
Query OK, 0 rows affected (0.00 sec)

mysql> create database T2Provenance;
Query OK, 1 row affected (0.00 sec)

mysql> use T2Provenance;
Database changed
mysql> \. /home/stain/Desktop/provenance-schema.sql
Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.21 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.02 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.01 sec)

mysql>



-- 
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
CREATE TABLE Datalink (
  sourcePortName varchar(100) NOT NULL ,
  sourcePortId varchar(36) NOT NULL ,
  destinationPortId varchar(36) NOT NULL ,
  destinationPortName varchar(100) NOT NULL,
  sourceProcessorName varchar(100) NOT NULL,
  destinationProcessorName varchar(100) NOT NULL,
  workflowId varchar(36) NOT NULL, PRIMARY KEY  (sourcePortId,destinationPortId,workflowId))
 ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE Collection (
  collID varchar(80) NOT NULL,
  parentCollIDRef varchar(80) NOT NULL ,
  workflowRunId varchar(36) NOT NULL,
  processorNameRef varchar(40) NOT NULL,
  portName varchar(40) NOT NULL,
  iteration varchar(40) NOT NULL default '',
 PRIMARY KEY (collID,workflowRunId,processorNameRef,portName,parentCollIDRef,iteration))
 ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE Processor (
  processorId varchar(36) NOT NULL,
  processorName varchar(100) NOT NULL,
  workflowId varchar(36) NOT NULL ,
  firstActivityClass varchar(100) default NULL,
  isTopLevel smallint, 
PRIMARY KEY (processorId),
CONSTRAINT processor_constraint UNIQUE (processorName,workflowId))
ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE Port (
  portId varchar(36) NOT NULL,
  processorId varchar(36),
  portName varchar(100) NOT NULL,
  isInputPort smallint NOT NULL ,
  processorName varchar(100) NOT NULL,
  workflowId varchar(36) NOT NULL,
  depth int,
  resolvedDepth int,
  iterationStrategyOrder smallint, 
PRIMARY KEY (portId),
CONSTRAINT port_constraint UNIQUE (
  portName,isInputPort,processorName,workflowId))
ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE PortBinding (
  portName varchar(40) NOT NULL,
  workflowRunId varchar(100) NOT NULL,
  value varchar(100) default NULL,
  collIDRef varchar(100),
  positionInColl int NOT NULL,
  processorNameRef varchar(40) NOT NULL,
  valueType varchar(50) default NULL,
  ref varchar(100) default NULL,
  iteration varchar(40) NOT NULL,
  workflowId varchar(36),
PRIMARY KEY (
  portName,workflowRunId,processorNameRef,iteration, workflowId)) 
ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE WorkflowRun (
workflowRunId varchar(36) NOT NULL,
workflowId varchar(36) NOT NULL,
timestamp timestamp NOT NULL default CURRENT_TIMESTAMP,
 PRIMARY KEY (workflowRunId, workflowId)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE Workflow (
workflowId varchar(36) NOT NULL,
parentWorkflowId varchar(100),
externalName varchar(100),
dataflow blob, 
PRIMARY KEY  (workflowId)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE ProcessorEnactment (
processEnactmentId varchar(36) NOT NULL, 
workflowRunId varchar(100) NOT NULL, 
processorId varchar(36) NOT NULL, 
processIdentifier varchar(2047) NOT NULL, 
iteration varchar(100) NOT NULL, 
parentProcessorEnactmentId varchar(36), 
enactmentStarted timestamp, 
enactmentEnded timestamp, 
initialInputsDataBindingId varchar(36), 
finalOutputsDataBindingId varchar(36), 
 PRIMARY KEY (processEnactmentId)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE ServiceInvocation(
processorEnactmentId varchar(36) NOT NULL,
workflowRunId varchar(100) NOT NULL, 
invocationNumber bigint NOT NULL,
invocationStarted timestamp, 
invocationEnded timestamp, 
inputsDataBinding varchar(36),
outputsDataBinding varchar(36),
failureT2Reference varchar(100) default NULL,
activityId varchar(36),
initiatingDispatchLayer varchar(250) NOT NULL,
finalDispatchLayer varchar(250) NOT NULL,
PRIMARY KEY (processorEnactmentId, invocationNumber)) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE Activity(
activityId varchar(36) NOT NULL,
activityDefinition blob NOT NULL,
workflowId varchar(100) NOT NULL, 
PRIMARY KEY (activityId)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE DataBinding(
dataBindingId varchar(36) NOT NULL,
portId varchar(36) NOT NULL,
t2Reference varchar(100) NOT NULL,
workflowRunId varchar(100) NOT NULL, 
PRIMARY KEY (dataBindingId,portId)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE DataflowInvocation(
dataflowInvocationId varchar(36) NOT NULL,
workflowId varchar(100) NOT NULL, 
invocationStarted timestamp, 
invocationEnded timestamp, 
inputsDataBinding varchar(36),
outputsDataBinding varchar(36),
parentProcessorEnactmentId varchar(36), 
workflowRunId varchar(100) NOT NULL, 
completed smallint NOT NULL,
PRIMARY KEY (dataflowInvocationId)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

------------------------------------------------------------------------------
This SF.net Dev2Dev email is sponsored by:

Show off your parallel programming skills.
Enter the Intel(R) Threading Challenge 2010.
http://p.sf.net/sfu/intel-thread-sfd
_______________________________________________
taverna-hackers mailing list
[email protected]
Web site: http://www.taverna.org.uk
Mailing lists: http://www.taverna.org.uk/about/contact-us/
Developers Guide: http://www.taverna.org.uk/developers/

Reply via email to