dbcopy problem
Posted in 2003
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Security, Permissions & Auditing, Data Types & Schema Design, Licensing & Editions, Migration, Import/Export & Data Conversion, Platform-Specific Issues
Hi all.
My group is going to be doing a major database migration in a couple
of weeks and I just discovered the dbcopy utility and thought it would
be just the thing. Unfortunately I have been having problems with
dbcopy. I have spent the last couple of days going over the Informix
Fetch Array documentation and the dbcopy source and I am stumped.
When I run the program with the following command line:
./dbcopy -t item_test -T item_test -d bas -D loutest -g
I get the following results:
Selecting data from bas@mem_dev_tcp with:
SELECT * FROM item_test;
Inserting data to loutest@mem_dev_tcp with:
INSERT INTO item_test (
item_id,
item_class,
item_instance_name,
item_create_date,
item_blob,
acc_id,
item_type,
user_id,
prod_id,
lc_date
) values (
?, ?, ?, ?, ?, ?, ?, ?, ?, ? );
Error fetching row! Code=-19986, ISAM=0.
Segmentation Fault(coredump)
(and what is error -19986: I don't see it documented anywhere or
mentioned on groups anywhere?)
The schema for the table I am testing with is as follows:
DBSCHEMA Schema Utility INFORMIX-SQL Version 9.40.FC2
Copyright (C) Informix Software, Inc., 1984-1997
Software Serial Number AAA#B000000
{ TABLE "klimoffl".item_test row size = 364 number of columns = 10
index size = 0
}
create table "klimoffl".item_test
(
item_id serial not null ,
item_class integer,
item_instance_name varchar(255),
item_create_date datetime year to second
default current year to second,
item_blob text,
acc_id char(10),
item_type char(1),
user_id char(15),
prod_id char(2),
lc_date datetime year to second
default current year to second
);
revoke all on "klimoffl".item_test from "public";
The source table has 24 rows and the largest blob is 1490 bytes. If I
load another 42 rows into the source table (the largest is still 1490
bytest) I get an error -465 "No more memory for locator buffer." My
system has plenty of swap space ...
The esql library I linked against is:
IBM/Informix-Client SDK Version 2.81.UC1
IBM/Informix EMBEDDED SQL for C Version 9.53.UC1
Copyright (C) 1991-2003 IBM
The version of dbcopy is
dbcopy.ec: Revision: 1.40 Copyright 1996-2003 by Art S. Kagel.
License for private usage (including use by commercial
enterprise
for its own needs) is granted. Commercial and exploitation
rights
are reserved.
The database is running IDS v9.40 FC2 and lives on an AlphaServer
running Tru64 5.1B .
dbcopy is running on a Solaris system running Solaris 7.
The compile line for dbcopy was:
esql -static dbcopy.ec -o dbcopy
Thanks in advance - any help would be greatly appreciated,
Lou
BTW, if anybody is listening - here is a comment on the Informix
documentation:
dbcopy deals with several Fetch Array issues that aren't documented
and the example programs ignore. The one I ran into is that the
documentation and the example programs recommend summing sqllen to
determine the length of the input buffer which won't work for the
SQLDTIME data type. dbcopy uses rtypalign() to determine the length of
the input buffer. Also, the examples use sqllen as input to
rtypmsize() but dbcopy hard codes this value for SQLDTIME data type.
Use HPL (High Performance Loader) instead. Inserting each record to databse
will take a looooong time, if you don't have an empty original database.
Check posts in this newsgroup.
"Lou Klimoff" <klimoffl@hotmail.com> wrote in message
news:497dc579.0309220726.afa40b2@posting.google.com...
> Hi all.
> My group is going to be doing a major database migration in a couple
> of weeks and I just discovered the dbcopy utility and thought it would
> be just the thing. Unfortunately I have been having problems with
> dbcopy. I have spent the last couple of days going over the Informix
> Fetch Array documentation and the dbcopy source and I am stumped.
>
>
> When I run the program with the following command line:
> ./dbcopy -t item_test -T item_test -d bas -D loutest -g
>
> I get the following results:
> Selecting data from bas@mem_dev_tcp with:
> SELECT * FROM item_test;>
>
> Inserting data to loutest@mem_dev_tcp with:
> INSERT INTO item_test (
> item_id,
> item_class,
> item_instance_name,
> item_create_date,
> item_blob,
> acc_id,
> item_type,
> user_id,
> prod_id,
> lc_date
> ) values (
> ?, ?, ?, ?, ?, ?, ?, ?, ?, ? );>
> Error fetching row! Code=-19986, ISAM=0.
> Segmentation Fault(coredump)
>
> (and what is error -19986: I don't see it documented anywhere or
> mentioned on groups anywhere?)
>
>
>
>
> The schema for the table I am testing with is as follows:
> DBSCHEMA Schema Utility INFORMIX-SQL Version 9.40.FC2
> Copyright (C) Informix Software, Inc., 1984-1997
> Software Serial Number AAA#B000000
> { TABLE "klimoffl".item_test row size = 364 number of columns = 10
> index size = 0
> }
> create table "klimoffl".item_test
> (
> item_id serial not null ,
> item_class integer,
> item_instance_name varchar(255),
> item_create_date datetime year to second
> default current year to second,
> item_blob text,
> acc_id char(10),
> item_type char(1),
> user_id char(15),
> prod_id char(2),
> lc_date datetime year to second
> default current year to second
> );
> revoke all on "klimoffl".item_test from "public";>
>
> The source table has 24 rows and the largest blob is 1490 bytes. If I
> load another 42 rows into the source table (the largest is still 1490
> bytest) I get an error -465 "No more memory for locator buffer." My
> system has plenty of swap space ...
>
> The esql library I linked against is:
> IBM/Informix-Client SDK Version 2.81.UC1
> IBM/Informix EMBEDDED SQL for C Version 9.53.UC1
> Copyright (C) 1991-2003 IBM
>
> The version of dbcopy is
> dbcopy.ec: Revision: 1.40 Copyright 1996-2003 by Art S. Kagel.
> License for private usage (including use by commercial
> enterprise
> for its own needs) is granted. Commercial and exploitation
> rights
> are reserved.
>
>
> The database is running IDS v9.40 FC2 and lives on an AlphaServer
> running Tru64 5.1B .
>
> dbcopy is running on a Solaris system running Solaris 7.
>
> The compile line for dbcopy was:
> esql -static dbcopy.ec -o dbcopy
>
>
> Thanks in advance - any help would be greatly appreciated,
>
> Lou
>
>
>
> BTW, if anybody is listening - here is a comment on the Informix
> documentation:
> dbcopy deals with several Fetch Array issues that aren't documented
> and the example programs ignore. The one I ran into is that the
> documentation and the example programs recommend summing sqllen to
> determine the length of the input buffer which won't work for the
> SQLDTIME data type. dbcopy uses rtypalign() to determine the length of
> the input buffer. Also, the examples use sqllen as input to
> rtypmsize() but dbcopy hard codes this value for SQLDTIME data type.