You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ddlutils-user@db.apache.org by "Jeffrey W. Bullard" <je...@nist.gov> on 2010/01/14 21:10:35 UTC

problem importing to derby

I'm trying to import schema and data into derby (ddlToDatabase) from  
xml files created by databasetoDdl task executed on a mysql  
database.  I have successfully done this on simple data files  
already, but with this database the task seems to drop the  
connection.  There are 9 tables in the database.  The schema seem to  
be written okay using the writeSchemaToDatabase subtask.  Then it is  
time to read the data using the writeDataToDatabase subtask.  This  
seems to proceed okay for a while, but soon I get the following output:

[ddlToDatabase] Returning connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
[ddlToDatabase] Remaining connections: None

BUILD FAILED
/Users/bullard/DdlUtils-test/build.xml:33:  
org.apache.ddlutils.io.DataSinkException: java.sql.SQLException:  
Connection is closed.

I am including debug output from the ddlToDatabase task and the  
ddlToDatabase task from my build.xml file below.

One other symptom.  I've tried doing this a few times, and each time  
the writeDataToDatabase subtask seems to get to a different place  
before quitting.
Any suggestions are greatly appreciated.

************************************************************************ 
***********
import-target-db:
[ddlToDatabase] Read schema file /Users/bullard/DdlUtils-test/cement- 
db-schema.xml
[ddlToDatabase] About to create database using this URL:  
jdbc:derby:vcctl_cement;create=true
[ddlToDatabase] Database 'vcctl_cement' not created, connection made  
to existing database instead.
[ddlToDatabase] Created database
[ddlToDatabase] Borrowed connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 from data source
[ddlToDatabase] Returning connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
[ddlToDatabase] Remaining connections: None
[ddlToDatabase] Borrowed connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 from data source
[ddlToDatabase] About to execute SQL CREATE TABLE AGGREGATE_
[ddlToDatabase] (
[ddlToDatabase]     NAME VARCHAR(64) DEFAULT '' NOT NULL,
[ddlToDatabase]     GIF LONG VARCHAR FOR BIT DATA,
[ddlToDatabase]     TXT LONG VARCHAR FOR BIT DATA,
[ddlToDatabase]     INF LONG VARCHAR FOR BIT DATA,
[ddlToDatabase]     AGGREGATE_TYPE INTEGER DEFAULT 0 NOT NULL,
[ddlToDatabase]     BULK_MODULUS DOUBLE,
[ddlToDatabase]     SHEAR_MODULUS DOUBLE,
[ddlToDatabase]     SPECIFIC_GRAVITY DOUBLE DEFAULT 2.65 NOT NULL,
[ddlToDatabase]     PRIMARY KEY (NAME)
[ddlToDatabase] )
[ddlToDatabase] After execution, 0 row(s) have been changed
[ddlToDatabase] About to execute SQL INSERT INTO AGGREGATE_  
(NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_GRA 
VITY) SELECT  
NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_GRAV 
ITY FROM AGGREGATE
[ddlToDatabase] After execution, 27 row(s) have been changed
[ddlToDatabase] About to execute SQL DROP TABLE AGGREGATE
[ddlToDatabase] After execution, 0 row(s) have been changed
[ddlToDatabase] About to execute SQL CREATE TABLE AGGREGATE
[ddlToDatabase] (
[ddlToDatabase]     NAME VARCHAR(64) DEFAULT '' NOT NULL,
[ddlToDatabase]     GIF LONG VARCHAR FOR BIT DATA,
[ddlToDatabase]     TXT LONG VARCHAR FOR BIT DATA,
[ddlToDatabase]     INF LONG VARCHAR FOR BIT DATA,
[ddlToDatabase]     AGGREGATE_TYPE INTEGER DEFAULT 0 NOT NULL,
[ddlToDatabase]     BULK_MODULUS DOUBLE,
[ddlToDatabase]     SHEAR_MODULUS DOUBLE,
[ddlToDatabase]     SPECIFIC_GRAVITY DOUBLE DEFAULT 2.65 NOT NULL,
[ddlToDatabase]     PRIMARY KEY (NAME)
[ddlToDatabase] )
[ddlToDatabase] After execution, 0 row(s) have been changed
[ddlToDatabase] About to execute SQL INSERT INTO AGGREGATE  
(NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_GRA 
VITY) SELECT  
NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_GRAV 
ITY FROM AGGREGATE_
[ddlToDatabase] After execution, 27 row(s) have been changed
[ddlToDatabase] About to execute SQL DROP TABLE AGGREGATE_
[ddlToDatabase] After execution, 0 row(s) have been changed
[ddlToDatabase] Executed 25 SQL command(s) with 0 error(s)
[ddlToDatabase] Returning connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
[ddlToDatabase] Remaining connections: None
[ddlToDatabase] Written schema to database
[ddlToDatabase] Borrowed connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 from data source
[ddlToDatabase] About to execute SQL: INSERT INTO aggregate (name,  
gif, txt, inf, aggregate_type, bulk_modulus, shear_modulus,  
specific_gravity) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
[ddlToDatabase] Returning connection  
org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
[ddlToDatabase] Remaining connections: None

BUILD FAILED
/Users/bullard/DdlUtils-test/build.xml:33:  
org.apache.ddlutils.io.DataSinkException: java.sql.SQLException:  
Connection is closed.

Total time: 3 seconds
************************************************************************ 
****************

Here is the target from my build.xml:

    <target name="import-target-db" description="Creates db and loads  
data">
       <taskdef name="ddlToDatabase"
               classname="org.apache.ddlutils.task.DdlToDatabaseTask">
          <classpath refid="classpath"/>
       </taskdef>

       <ddlToDatabase schemaFile="cement-db-schema.xml"  
verbosity="debug">

          <database url="jdbc:derby:vcctl_cement"
                  driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
                  username=""
                  password=""/>

          <createDatabase failonerror="false"/>
          <writeSchemaToDatabase/>
          <writeDataToDatabase datafile="cement-data.xml"/>

       </ddlToDatabase>
    </target>





Re: problem importing to derby

Posted by "Jeffrey W. Bullard" <je...@nist.gov>.
OK, that was another easy question.  My db schema (exported from  
MySQL using DdlUtils) identified LONGVARBINARY data types where they  
had been BLOBS in the MySQL database.  The BLOBS in the MySQL  
database had a max length of 65536, but when I imported into Derby  
those data types were interpreted as "LONG VARCHAR FOR BIT DATA"  
which has a max length of only 32700.  The first time derby  
encountered a field with more than 32700 for that data type, it  
presumably dropped the connection.

The fix:  I went into the schema XML file and changed all  
LONGVARBINARY identifiers to BLOB.  That seems to have worked.  I can  
examine all my tables and the data all appear to be intact.

On Jan 14, 2010, at 3:10 PM, Jeffrey W. Bullard wrote:

> I'm trying to import schema and data into derby (ddlToDatabase) from
> xml files created by databasetoDdl task executed on a mysql
> database.  I have successfully done this on simple data files
> already, but with this database the task seems to drop the
> connection.  There are 9 tables in the database.  The schema seem to
> be written okay using the writeSchemaToDatabase subtask.  Then it is
> time to read the data using the writeDataToDatabase subtask.  This
> seems to proceed okay for a while, but soon I get the following  
> output:
>
> [ddlToDatabase] Returning connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
> [ddlToDatabase] Remaining connections: None
>
> BUILD FAILED
> /Users/bullard/DdlUtils-test/build.xml:33:
> org.apache.ddlutils.io.DataSinkException: java.sql.SQLException:
> Connection is closed.
>
> I am including debug output from the ddlToDatabase task and the
> ddlToDatabase task from my build.xml file below.
>
> One other symptom.  I've tried doing this a few times, and each time
> the writeDataToDatabase subtask seems to get to a different place
> before quitting.
> Any suggestions are greatly appreciated.
>
> ********************************************************************** 
> **
> ***********
> import-target-db:
> [ddlToDatabase] Read schema file /Users/bullard/DdlUtils-test/cement-
> db-schema.xml
> [ddlToDatabase] About to create database using this URL:
> jdbc:derby:vcctl_cement;create=true
> [ddlToDatabase] Database 'vcctl_cement' not created, connection made
> to existing database instead.
> [ddlToDatabase] Created database
> [ddlToDatabase] Borrowed connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 from data source
> [ddlToDatabase] Returning connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
> [ddlToDatabase] Remaining connections: None
> [ddlToDatabase] Borrowed connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 from data source
> [ddlToDatabase] About to execute SQL CREATE TABLE AGGREGATE_
> [ddlToDatabase] (
> [ddlToDatabase]     NAME VARCHAR(64) DEFAULT '' NOT NULL,
> [ddlToDatabase]     GIF LONG VARCHAR FOR BIT DATA,
> [ddlToDatabase]     TXT LONG VARCHAR FOR BIT DATA,
> [ddlToDatabase]     INF LONG VARCHAR FOR BIT DATA,
> [ddlToDatabase]     AGGREGATE_TYPE INTEGER DEFAULT 0 NOT NULL,
> [ddlToDatabase]     BULK_MODULUS DOUBLE,
> [ddlToDatabase]     SHEAR_MODULUS DOUBLE,
> [ddlToDatabase]     SPECIFIC_GRAVITY DOUBLE DEFAULT 2.65 NOT NULL,
> [ddlToDatabase]     PRIMARY KEY (NAME)
> [ddlToDatabase] )
> [ddlToDatabase] After execution, 0 row(s) have been changed
> [ddlToDatabase] About to execute SQL INSERT INTO AGGREGATE_
> (NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_G 
> RA
> VITY) SELECT
> NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_GR 
> AV
> ITY FROM AGGREGATE
> [ddlToDatabase] After execution, 27 row(s) have been changed
> [ddlToDatabase] About to execute SQL DROP TABLE AGGREGATE
> [ddlToDatabase] After execution, 0 row(s) have been changed
> [ddlToDatabase] About to execute SQL CREATE TABLE AGGREGATE
> [ddlToDatabase] (
> [ddlToDatabase]     NAME VARCHAR(64) DEFAULT '' NOT NULL,
> [ddlToDatabase]     GIF LONG VARCHAR FOR BIT DATA,
> [ddlToDatabase]     TXT LONG VARCHAR FOR BIT DATA,
> [ddlToDatabase]     INF LONG VARCHAR FOR BIT DATA,
> [ddlToDatabase]     AGGREGATE_TYPE INTEGER DEFAULT 0 NOT NULL,
> [ddlToDatabase]     BULK_MODULUS DOUBLE,
> [ddlToDatabase]     SHEAR_MODULUS DOUBLE,
> [ddlToDatabase]     SPECIFIC_GRAVITY DOUBLE DEFAULT 2.65 NOT NULL,
> [ddlToDatabase]     PRIMARY KEY (NAME)
> [ddlToDatabase] )
> [ddlToDatabase] After execution, 0 row(s) have been changed
> [ddlToDatabase] About to execute SQL INSERT INTO AGGREGATE
> (NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_G 
> RA
> VITY) SELECT
> NAME,GIF,TXT,INF,AGGREGATE_TYPE,BULK_MODULUS,SHEAR_MODULUS,SPECIFIC_GR 
> AV
> ITY FROM AGGREGATE_
> [ddlToDatabase] After execution, 27 row(s) have been changed
> [ddlToDatabase] About to execute SQL DROP TABLE AGGREGATE_
> [ddlToDatabase] After execution, 0 row(s) have been changed
> [ddlToDatabase] Executed 25 SQL command(s) with 0 error(s)
> [ddlToDatabase] Returning connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
> [ddlToDatabase] Remaining connections: None
> [ddlToDatabase] Written schema to database
> [ddlToDatabase] Borrowed connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 from data source
> [ddlToDatabase] About to execute SQL: INSERT INTO aggregate (name,
> gif, txt, inf, aggregate_type, bulk_modulus, shear_modulus,
> specific_gravity) VALUES (?, ?, ?, ?, ?, ?, ?, ?)
> [ddlToDatabase] Returning connection
> org.apache.commons.dbcp.PoolableConnection@19e02860 to data source.
> [ddlToDatabase] Remaining connections: None
>
> BUILD FAILED
> /Users/bullard/DdlUtils-test/build.xml:33:
> org.apache.ddlutils.io.DataSinkException: java.sql.SQLException:
> Connection is closed.
>
> Total time: 3 seconds
> ********************************************************************** 
> **
> ****************
>
> Here is the target from my build.xml:
>
>     <target name="import-target-db" description="Creates db and loads
> data">
>        <taskdef name="ddlToDatabase"
>                classname="org.apache.ddlutils.task.DdlToDatabaseTask">
>           <classpath refid="classpath"/>
>        </taskdef>
>
>        <ddlToDatabase schemaFile="cement-db-schema.xml"
> verbosity="debug">
>
>           <database url="jdbc:derby:vcctl_cement"
>                    
> driverClassName="org.apache.derby.jdbc.EmbeddedDriver"
>                   username=""
>                   password=""/>
>
>           <createDatabase failonerror="false"/>
>           <writeSchemaToDatabase/>
>           <writeDataToDatabase datafile="cement-data.xml"/>
>
>        </ddlToDatabase>
>     </target>
>
>
>
>