Try enabling tracing on the handle ($sth->trace( 2 ); see perldoc DBI for more details like sending trace output to a file) and see if that produces anything enlightening.
| [reply] [d/l] [select] |
The error generally means that one of the communication channels was dropped. Have you, perchance, googled the error?
The Perfect is the Enemy of the Good.
| [reply] |
ORA-03113 is a catch-all error message, similar to ORA-00600 but
less useful. It means that something went wrong, and Oracle
doesn't know what.
Following are some steps on how to check the reason behind the problem.
1. As it turns out, the most common reason is that the Oracle shadow process
on the server died unexpectedly. So, if a running process were to
suddenly encounter an ORA-03113 and/or 3114, the first place to check is
the alert.log on the server to see if any other Oracle errors occurred.
2. Next most common cause of ORA-03113 is that the SQL*Net driver was not
linked into the Oracle executable on Server. While the listener
successfully received the connection and passed it to the Oracle shadow
process, the shadow process would fail to respond in any way because it
would not know how to. So the client will see an ORA-03113 at connect
time.
3. Third most common cause is a machine crash or network failure at the
server side.
4. ORA-03113 has also been noticed where the a TOKEN RING card has the
Shared RAM size set to 8KB rather than 16KB. If you are using a TOKEN
RING card check the shared buffer size and try increasing it.
5. ORA-03113 also occurs when INIT.ORA parameters CONTEXT_AREA and
CONTEXT_INCR are set to a value of 4096. Increasing the value to 8192
resolves the 3113. (RDVMS V6 only)
6. ORA-03113 also occurs when there are duplicate IP addresses on the
network. To find the duplicate addresses turn off the unit that is getting
the 03113 and ping its IP address. If the ping responds then you have to
find the offending unit.
7. If an ORA-03113 error occurs intermittentlly on comparatively large select
statements, try setting the default buffer size to 4096, especially if
issuing an order by causes no problems but going through Q&E or SQR hangs
the machine.
ORA-03113 is just a symptom of a larger problem that will require more
diagnosis to track down. Hopefully, the above information will lead you
in the right direction to find the solution.
To debug an ORA-03113, it is a good idea to attempt the same operation
while doing a loopback, i.e can any tool on the server connect using the
same connect string as they specify from the Desktop client? If the same
problem occurs doing a loopback, then you know the problem resides on the
server side and not on the Desktop client side.
To perform a loopback invoke SQLPLUS or SQLDBA from the server, and at the
SQLPLUS or SQLDBA prompt on the server type:
CONNECT USERNAME/PASSWORD@t:/:
!!@!!
May the force be with you | [reply] |
Try also looking for Oracle generated trace (.trc) files on the filesystem. Could be some nasty internal error (I speak from first-hand experience :) | [reply] |