(Sorry for the repeated interruptions, perhaps I'm
exersizing the bleeding edge ?)
I managed to get around the previous issue by adding
a driver package level $installed flag. Alas, I now have
another (somewhat more gruesome) issue:
I'm running a test suite that
1. loads a table using 7 concurrent threads using raw binary data
2. Upon completion, the threads exit and are destroyed
3. the same table is then reloaded using
7 (new) threads, using character string data only
Items 1 & 2 complete wo/ problems (at least once I add the #installed flag),
but when the new threads are created and DBI->connect is called
in the threads, I get the following errors:
Attempt to free unreferenced scalar: SV 0x280bac00 at C:/Perl/site/lib/DBI.pm line 633.
DBI::__ANON__[C:/Perl/site/lib/DBI.pm:646]('undef','undef') called at
C:/Perl/site/lib/DBI.pm line 648
DBI::connect('DBI','dbi:Teradata:jhvh1','dbitst','dbitst','HASH(0x25128e4)')
called at
testutf8.pl line 2827
main::vartext_load_thrd(1,'jhvh1','dbitst','dbitst',7,'Thread::Queue=ARRAY(0x64b5e24)')
called at testutf8.pl line 300
Here's the connect() that generates the error:
my $dbh = DBI->connect("dbi:Teradata:$dsn", $userid, $passwd,
{
PrintError => 0,
RaiseError => 0,
AutoCommit => 0,
tdat_charset => 'UTF8'
}
) || die "Thread $thrdnum: Can't connect to $dsn: $DBI::errstr. Exitting...\n";
The DBI.pm line 633 is delete'ing one of the std. (RaiseError, PrintError, AutoCommit)
entries from the \%attr and assigning the result to the internal $dbh.
Note this is repeated for each thread.
Any ideas what's amiss here ? Guess I'll try leaving the std. attrs alone and
assigning them after connect()...
Dean Arnold
Presicient Corp.
www.presicient.com