[ic] Help with DBI rollback not working

Matt Flaherty interchange-users@lists.akopia.com
Wed Jun 13 13:04:01 2001


Hi list,

Here's what I'm using:
ic 4.7.3
Red Hat Linux release 6.2 (Piglet)
VA Linux Release 6.2.3 08/01/00
Kernel 2.2.14-VA.2.1smp on a 2-processor i686
DBI with DBD::Oracle and Oracle 8i
Apache 1.3.19

I've been having a problem with the final checkout 'process' action as
follows. The application returns a message to the browser that looks like
this:

-----------------------^snip-----------------------
Sorry, there was an error in processing this form action. Please report the
error or try again later. (DBD::Oracle::db rollback failed: Error while
trying to retrieve text for error ORA-03114 (DBD ERROR: OCITransRollback) at
/usr/local/ic.4.7.x/lib/Vend/Table/DBI.pm line 648. )
-----------------------^snip-----------------------

ORA-3114 reads:
03114, 00000, "not connected to ORACLE"
// *Cause:
// *Action:


The line referred to in the error message is in the following subroutine:

-----------------------^snip-----------------------
sub rollback {
    my ($s) = @_;

#::logDebug("rolling back $s->[$TABLE], dsn_id=$s->[$CONFIG]{dsn_id}");
        # This is pretty harmless, no?
        return undef if ! defined $s->[$DBI];

#       if (! defined $s->[$DBI]) {
#               ::logError(
#                       "rollback attempted on non-open database handle for
table: %s",
#                       $s->[$TABLE],
#               );
#               return undef;
#       }

        return $s->[$DBI]->rollback();
}
-----------------------^snip-----------------------


The last line is returning the error into $@. I've been able to determine
the $s->[$DBI] is a reference to a DBI::db object, but my Perl is not
stellar so I've been unable to see what is actually being called and can get
no further. I've spent some time trying to figure out what is actually
causing the rollback but haven't gotten far. This is what appears in the
catalog error.log


172.16.42.11 qmwjb7V2:172.16.42.11 - [13/June/2001:17:25:27 +0100] shop
/cgi-bin/shop/process.html Saving userdb in mv_check.
172.16.42.11 qmwjb7V2:172.16.42.11 - [13/June/2001:17:25:34 +0100] shop
/cgi-bin/shop/process.html Route main failed.
172.16.42.11 qmwjb7V2:172.16.42.11 - [13/June/2001:17:25:34 +0100] shop
/cgi-bin/shop/process.html Route copy_user failed.



Can anyone help? Thanks.

Matt Flaherty