Hello all,

I am a relative newbie at debugging DBI related problems.  I am using
the following tracing:

PerlSetEnv DBI_TRACE "1=/tmp/dbitrace.log"

My problem is that although I can trace to lines of code in a package we
have written,
I don't understand what I can do because I don't fully understand the trace
output.
Here is as tight an example as I could find:

   -> DBI->Apache::DBI::connect(DBI:Oracle:MOBILE1S, MOBILET3, MOBILET3)
 [stuff deleted]
    <- err= undef at Session.pm line 667.
    <- execute= '0E0' at Session.pm line 676.
    <- err= undef at Session.pm line 677.
[ stuff deleted]
    <- finish= 1 at Session.pm line 709.
    <- DESTROY= undef at Session.pm line 172.
    -> DBI->Apache::DBI::connect(DBI:Oracle:MOBILE1, MOBILET3, MOBILET3)
    <- FETCH= 'Oracle' ('Name' from cache) at DBI.pm line 64.
2   <- prepare('select SYSDATE from DUAL /* ping */')=
DBI::st=HASH(0x8a67260) at Oracle.pm line 307.
    <- FETCH= 1 at Oracle.pm line 309.
    <- DESTROY= undef at Oracle.pm line 311.
    <- ping= 1 at DBI.pm line 112.
    <- STORE('PrintError', 0)= 1 at DBI.pm line 407.
    <- STORE('AutoCommit', 0)= 1 at DBI.pm line 407.
    <- connect= Apache::DBI::db=HASH(0x884d9c8)
    <- FETCH= 1 at DBI.pm line 153.
    <- FETCH= '' at DBI.pm line 153.
    !! ERROR: 3113 'ORA-03113: end-of-file on communication channel (DBD
ERROR: OCITransRollback)'
    <- rollback= '' at DBI.pm line 153.
    <- FETCH= 1 at DBI.pm line 153.
    <- FETCH= '' at DBI.pm line 153.
    <- rollback= 1 at DBI.pm line 153.

(1) Although this seems like a destroy-before-disconnect problem, I cannot
find that happening in my code,
    which is Session.pm.
(2) I am not 100% sure of what causes the ORA-03113 error.
(3) I don't understand exactly what "DESTROY= undef at Oracle.pm line 309"
means, and whether that is
    Bad or not.  Also I am a little vague on the general semantics of the
Trace; the man pages don't seem
    much help.

Basically I have this trace output but don't understand how to diagnose the
problem from it, I need to
know exactly what it means.  The bug is very predictable and reproduceable;
we're running through Oracle::DBD
on Linux.  I need a more specific understanding of this trace, as well as
better ways to debug such a DB
problem.

Can anybody help?

--John Hempe

Reply via email to