Subject: | DBD::DB2 v1.61 and newer does not work well with DB2v9.1.0.2 |
Date: | Tue, 17 Mar 2009 16:21:05 +0100 |
To: | <bug-DBD-DB2 [...] rt.cpan.org> |
From: | Morten Bjørnsvik <morten.bjornsvik [...] experian-da.no> |
Hi
With the new DBD::DB2 v1.61 and v1.7 our old DB2 v9.1.0.2 can't be used.
V9.5.0 and V9.5.0.2 works fine though.
Would be nice if you add a TESTING section to the readme, which describes which DB2 versions
the various driver versions have been tested with.
Testing the following program on DBD::DB2 v 1.61 on DB2v9.1.0.2
Install Path Level Fix Pack Special Install Number Install Date
--------------------------------------------------------------------------------------------
/opt/db2 9.1.0.2 2 1 Thu May 24 09:05:18 2007 CEST
If I install DBD::DB2 v1.61 or higher the error is present, If I reinstall DBD::DB2 v1.3 it works again.
Back and forth.
#!/opt/smm/bin/perl -w
# database barebone test
use strict;
use warnings;
use Carp;
use DBI;
use DBD::DB2;
use Data::Dumper;
print "\$DBI::VERSION: " . $DBI::VERSION . "\n";
print "\$DBD::DB2::VERSION: " . $DBD::DB2::VERSION . "\n";
# connect to the database
my $dbh = DBI->connect( 'dbi:DB2:<database>', '<user>', '<pw>', { RaiseError =>
1 } );
my $sql = "select * from sched order by id asc";
my $sth = $dbh->prepare($sql);
$sth->execute();
my $ref = $sth->fetchall_arrayref();
$sth->finish();
print "fetchall_hashref() of '$sql' dump:\n" . Dumper($ref);
$ref = undef;
$sth = $dbh->prepare($sql);
$sth->execute();
while( $ref = $sth->fetchrow_hashref()) {
print "dump of fetchrow_hashref()" . Dumper($ref);
}
With DBD::DB2 v1.61 and v1.7 the output is truncated. see the command column
./db-test2.pl
$DBI::VERSION: 1.607
$DBD::DB2::VERSION: 1.61
fetchall_hashref() of 'select * from sched order by id asc' dump:
$VAR1 = [
[
'1',
'*',
'* * * * mon-fri',
'{"system":"$SEC',
'2009-03-17 12:52:51.188049',
'2009-03-17 13:02:00.349395',
'2009-03-17 13:02:00.342011',
'2009-03-17 12:52:51.188049',
'scheduled',
'Execute tx workflow with file data source every minute on each
workday'
],
[
'2',
'*',
'* * * * mon-fri',
'{"system":"$SEC',
'2009-03-17 12:52:51.228358',
'2009-03-17 13:02:00.349395',
'2009-03-17 13:02:00.347405',
'2009-03-17 12:52:51.228358',
'scheduled',
'Execute tx workflow with MQ data source every minute on each
workday'
]
];
dump of fetchrow_hashref()$VAR1 = {
'ID' => '1',
'DESC' => 'Execute tx workflow with file data source every minute on
each workday',
'TIMEOBJ' => '* * * * mon-fri',
'STATUS' => 'scheduled',
'UPDATED' => '2009-03-17 12:52:51.188049',
'CREATED' => '2009-03-17 12:52:51.188049',
'LASTRUN' => '2009-03-17 13:02:00.342011',
'RUNHOSTS' => '*',
'COMMAND' => '{"system":"$SEC',
'LASTCHECKED' => '2009-03-17 13:02:00.349395'
};
dump of fetchrow_hashref()$VAR1 = {
'ID' => '2',
'DESC' => 'Execute tx workflow with MQ data source every minute on
each workday',
'TIMEOBJ' => '* * * * mon-fri',
'STATUS' => 'scheduled',
'UPDATED' => '2009-03-17 12:52:51.228358',
'CREATED' => '2009-03-17 12:52:51.228358',
'LASTRUN' => '2009-03-17 13:02:00.347405',
'RUNHOSTS' => '*',
'COMMAND' => '{"system":"$SEC',
'LASTCHECKED' => '2009-03-17 13:02:00.349395'
};
With DBD::DB2 v1.3 it works fine:
./db-test2.pl
$DBI::VERSION: 1.607
$DBD::DB2::VERSION: 1.3
fetchall_hashref() of 'select * from sched order by id asc' dump:
$VAR1 = [
[
'1',
'*',
'* * * * mon-fri',
'{"system":"$SECANAROOT/bin/workflow/start_workflow.pl
--ic_auth=\'File\' --auth_file=\\"$SECANAROOT/files/data/test.data.small\\"
--auth_map_name=\'fixed\' --auth_map_name=\'WORKFLOW_AUTH_DATA_SOURCE_FILE\'
--ic_cb=\'File\' --cb_file=\\"$SECANAROOT/files/data/test.data.small\\"
--cb_map_name=\'fixed\' --cb_map_name=\'WORKFLOW_CB_DATA_SOURCE_FILE\'
--ic_pres=\'File\' --pres_file=\\"$SECANAROOT/files/data/test.data.small\\"
--pres_map_name=\'fixed\' --pres_map_name=\'WORKFLOW_PRES_DATA_SOURCE_FILE\'
--ic_rr=\'File\' --rr_file=\\"$SECANAROOT/files/data/test.data.small\\"
--rr_map_name=\'fixed\' --rr_map_name=\'WORKFLOW_RR_DATA_SOURCE_FILE\'"}',
'2009-03-17 12:52:51.188049',
'2009-03-17 13:02:00.349395',
'2009-03-17 13:02:00.342011',
'2009-03-17 12:52:51.188049',
'scheduled',
'Execute tx workflow with file data source every minute on each
workday'
],
[
'2',
'*',
'* * * * mon-fri',
'{"system":"$SECANAROOT/bin/workflow/start_workflow.pl
--ic_auth=\'MQ\' --auth_mq_svr_name=\'vmclone1\' --auth_mq_svr_port=\'6666\'
--auth_mq_svr_qmgr=\'vmclone1\' --auth_mq_svr_queue=\'smm.queue\'
--auth_mq_svr_channel=\'smm.channel\' --auth_map_name=\'csv\'
--auth_map_name=\'WORKFLOW_AUTH_DATA_SOURCE_MQ\' --auth_mq_svr_max_msg=\'100\'
--ic_cb=\'MQ\' --cb_mq_svr_name=\'vmclone1\' --cb_mq_svr_port=\'6666\'
--cb_mq_svr_qmgr=\'vmclone1\' --cb_mq_svr_queue=\'smm.queue\'
--cb_mq_svr_channel=\'smm.channel\' --cb_map_name=\'fixed\'
--cb_map_name=\'WORKFLOW_CB_DATA_SOURCE_MQ\' --cb_mq_svr_max_msg=\'100\'
--ic_pres=\'MQ\' --pres_mq_svr_name=\'vmclone1\' --pres_mq_svr_port=\'6666\'
--pres_mq_svr_qmgr=\'vmclone1\' --pres_mq_svr_queue=\'smm.queue\'
--pres_mq_svr_channel=\'smm.channel\' --pres_map_name=\'fixed\'
--pres_map_name=\'WORKFLOW_PRES_DATA_SOURCE_MQ\' --pres_mq_svr_max_msg=\'100\'
--ic_rr=\'MQ\' --rr_mq_svr_name=\'vmclone1\' --rr_mq_svr_port=\'6666\'
--rr_mq_svr_qmgr=\'vmclone1\' --rr_mq_svr_queue=\'smm.queue\'
--rr_mq_svr_channel=\'smm.channel\' --rr_map_name=\'fixed\'
--rr_map_name=\'WORKFLOW_RR_DATA_SOURCE_MQ\' --rr_mq_svr_max_msg=\'100\'
--output_channel=\'File\'
--output_file=\'/tmp/transaction_wf_ds_mq_alerts_file.json\'"}',
'2009-03-17 12:52:51.228358',
'2009-03-17 13:02:00.349395',
'2009-03-17 13:02:00.347405',
'2009-03-17 12:52:51.228358',
'scheduled',
'Execute tx workflow with MQ data source every minute on each
workday'
]
];
dump of fetchrow_hashref()$VAR1 = {
'ID' => '1',
'DESC' => 'Execute tx workflow with file data source every minute on
each workday',
'TIMEOBJ' => '* * * * mon-fri',
'STATUS' => 'scheduled',
'UPDATED' => '2009-03-17 12:52:51.188049',
'CREATED' => '2009-03-17 12:52:51.188049',
'LASTRUN' => '2009-03-17 13:02:00.342011',
'RUNHOSTS' => '*',
'COMMAND' => '{"system":"$SECANAROOT/bin/workflow/start_workflow.pl
--ic_auth=\'File\' --auth_file=\\"$SECANAROOT/files/data/test.data.small\\"
--auth_map_name=\'fixed\' --auth_map_name=\'WORKFLOW_AUTH_DATA_SOURCE_FILE\'
--ic_cb=\'File\' --cb_file=\\"$SECANAROOT/files/data/test.data.small\\"
--cb_map_name=\'fixed\' --cb_map_name=\'WORKFLOW_CB_DATA_SOURCE_FILE\'
--ic_pres=\'File\' --pres_file=\\"$SECANAROOT/files/data/test.data.small\\"
--pres_map_name=\'fixed\' --pres_map_name=\'WORKFLOW_PRES_DATA_SOURCE_FILE\'
--ic_rr=\'File\' --rr_file=\\"$SECANAROOT/files/data/test.data.small\\"
--rr_map_name=\'fixed\' --rr_map_name=\'WORKFLOW_RR_DATA_SOURCE_FILE\'"}',
'LASTCHECKED' => '2009-03-17 13:02:00.349395'
};
dump of fetchrow_hashref()$VAR1 = {
'ID' => '2',
'DESC' => 'Execute tx workflow with MQ data source every minute on
each workday',
'TIMEOBJ' => '* * * * mon-fri',
'STATUS' => 'scheduled',
'UPDATED' => '2009-03-17 12:52:51.228358',
'CREATED' => '2009-03-17 12:52:51.228358',
'LASTRUN' => '2009-03-17 13:02:00.347405',
'RUNHOSTS' => '*',
'COMMAND' => '{"system":"$SECANAROOT/bin/workflow/start_workflow.pl
--ic_auth=\'MQ\' --auth_mq_svr_name=\'vmclone1\' --auth_mq_svr_port=\'6666\'
--auth_mq_svr_qmgr=\'vmclone1\' --auth_mq_svr_queue=\'smm.queue\'
--auth_mq_svr_channel=\'smm.channel\' --auth_map_name=\'csv\'
--auth_map_name=\'WORKFLOW_AUTH_DATA_SOURCE_MQ\' --auth_mq_svr_max_msg=\'100\'
--ic_cb=\'MQ\' --cb_mq_svr_name=\'vmclone1\' --cb_mq_svr_port=\'6666\'
--cb_mq_svr_qmgr=\'vmclone1\' --cb_mq_svr_queue=\'smm.queue\'
--cb_mq_svr_channel=\'smm.channel\' --cb_map_name=\'fixed\'
--cb_map_name=\'WORKFLOW_CB_DATA_SOURCE_MQ\' --cb_mq_svr_max_msg=\'100\'
--ic_pres=\'MQ\' --pres_mq_svr_name=\'vmclone1\' --pres_mq_svr_port=\'6666\'
--pres_mq_svr_qmgr=\'vmclone1\' --pres_mq_svr_queue=\'smm.queue\'
--pres_mq_svr_channel=\'smm.channel\' --pres_map_name=\'fixed\'
--pres_map_name=\'WORKFLOW_PRES_DATA_SOURCE_MQ\' --pres_mq_svr_max_msg=\'100\'
--ic_rr=\'MQ\' --rr_mq_svr_name=\'vmclone1\' --rr_mq_svr_port=\'6666\'
--rr_mq_svr_qmgr=\'vmclone1\' --rr_mq_svr_queue=\'smm.queue\'
--rr_mq_svr_channel=\'smm.channel\' --rr_map_name=\'fixed\'
--rr_map_name=\'WORKFLOW_RR_DATA_SOURCE_MQ\' --rr_mq_svr_max_msg=\'100\'
--output_channel=\'File\'
--output_file=\'/tmp/transaction_wf_ds_mq_alerts_file.json\'"}',
'LASTCHECKED' => '2009-03-17 13:02:00.349395'
};
--
Morten Bjørnsvik
Experian Decision Analytics AS
PB 121, 0102 Oslo, Norway
Morten.bjornsvik@experian-da.no
+47 21 52 12 65 (office)
+47 21 52 12 51 (fax)
+47 92 44 83 02 (mob)