On Tue, 2004-10-12 at 01:05, Tim Bunce wrote: > On Mon, Oct 11, 2004 at 02:16:16PM -0600, Alan Sparks wrote: > > I've seen several posting regarding problems people have seen on Linux > > with Oracle 9 client libraries and DBD::Oracle, causing an ORA-03113 > > end-of-file on communication channel error when querying through > > database links. I did not, however find any solutions... > > > > So, we have the problem also, with Oracle 9.2.0 and DBD::Oracle 1.15 on > > RHEL 3... talking to an Oracle 8.1.7 server. Trace files show the > > server process dumps core and traces out. > > The server process dumping core is, by definition, an Oracle bug. > > > Anyway, is there anyone out there who has managed to find a workaround > > for the problem, either by a DBD::Oracle change or an Oracle patch? > > Please open a TAR with Oracle, see what they say, and report back. > (Sadly it's probably still best to talk in terms of your "OCI > application" rather than mention you're using Perl/DBI/DBD::Oracle.) > > Trace level 9 will trace the OCI calls. > > Tim.
Did the trace() calls, that was a good suggestion. Got a look into Metalink, and found an issue with OCI 9.2 clients and 8.1.7 databases. I've reproduced part of the info below. Basically seems to be the same problem, a describe operation on a query involving a database link. I guess DBD::Oracle describes the query before execution, to get some metadata? Doesn't look like Oracle has published a solution :-/ Wondering if there's some way to bypass the describe or maybe somehow reorder to get past their problem. Will try to get the DBA to call on the bug and see if there's any new info. Looks like the obvious solution is to downgrade Oracle libraries.... but getting the 8.1.7 installer to run on RHEL 3 seems like it'll be a battle in itself (damn glibc symbols problems). -Alan Bug No. 2548451 Filed 04-SEP-2002 Updated 10-SEP-2004 Product Oracle Server - Enterprise Edition Product Version 9.2.0.1 Platform Microsoft Windows 2000 Platform Version 4 Database Version 8.1.7.0 Affects Platforms Generic Severity Severe Loss of Service Status Development to Q/A Base Bug N/A Fixed in Product Version 8.1.7.4.99 Problem statement: OCI 9.2.0 AGAINST AN RDBMS 8.1.7 HIT ORA-1455 SELECTING A REMOTE TABLE Hdr: 2548451 8.1.7.0 RDBMS 9.2.0.1 PI/KPO PRODID-5 PORTID-100 ORA-1455 Abstract: OCI 9.2.0 AGAINST AN RDBMS 8.1.7 HIT ORA-1455 SELECTING A REMOTE TABLE *** 09/04/02 09:09 am *** Problem description: ------------------- OCI 9.2 connected to an 8.1.7 rdbms using OCIStmtExecute(OCI_DESCRIBE_ONLY)+OCIAttrGet hit "ORA-1455 converting column overflows integer datatype" performing "select column_of_type_Number from synonym_of_a_remote_table_817" . This happens with OCI 9.2 against rdbms 8.1.7 -dblink 8.1.7 this problem doesn't happen selecting the 8.1.7 table directly this problem doesn't happen against a 9.2 server this problems doesn't happens using an 8.1.7 oci program against an 8.1.7 server Testcase step-by-step instructions: ---------------------------------- 1)connect against an 8.1.7 server a create a synonym of a remote table e.g. create database link dbloop connect to scott identified by tiger Database link created. SQL> create synonym emploop for [EMAIL PROTECTED]; Synonym created. then alter system set global_names=false; . 2)compile and link test.c (i used developer studio on my PC) . 3)execute from command line . test scott tiger sqlnet_alias_db_817 "select count(*) from emploop" . rc=0 (after OCIEnvCreate) rc=0 (after OCIHandleAlloc errhp) rc=0 (after OCIHandleAlloc stmthp) rc=0 (after OCIHandleAlloc stmterrhp) rc=0 (after OCIStmtPrepare) rc=0 (after OCIStmtExecute OCI_DESCRIBE_ONLY) rc=0 (after OCIAttrGet colcnt=1) rc=0 (after OCIDefineByPos) rc=-1 (after OCIStmtExecute) Code 1455, ORA-01455: . 4)CHanging the OCI statement sequence simply (adding '1' at the end of the command line) all works fine . test scott tiger sqlnet_alias_db_817 "select count(*) from emploop" 1 . rc=0 (after OCIEnvCreate) rc=0 (after OCIHandleAlloc errhp) rc=0 (after OCIHandleAlloc stmthp) rc=0 (after OCIHandleAlloc stmterrhp) rc=0 (after OCIStmtPrepare) rc=0 (after OCIDefineByPos) rc=0 (after OCIStmtExecute) Output Bind=15 . . Available workarounds: --------------------- none The ORA-3113 occurs on the second OCIStmtExecute from the front end d/b. You do not need a define or fetch, nor do you need to get the column count. The problem can be reproduced just doing: . - execute for describe only - execute . If you don't execute for describe only the problem does not occur. >From ora-3113 trace file: ksedmp: internal or fatal error ORA-07445: exception encountered: core dump [kpoddl()+80] [SIGSEGV] [Address not mapped to object] [16] [] [] Current SQL statement for this session: select count(*) from syn_emp . Stack: ksedmp, ssexhd, sigacthandler, kpoddl, opiodr, ttcpip, opitsk, opiino, opiodr, opidrv, sou2o, main, _start . So the problem seems to be any 9i+ client connecting to an 8i database and executing across a link (any remote server version) following a describe of the same. Release Notes : ]] ORA-3113/ORA-1455 occurred when fetching NUMBER column from 8.1.7 remote ]] server into 9.2 client with DESCRBE_ONLY done prior to EXECUTE and FETCH -- Alan Sparks, Sr. UNIX Administrator [EMAIL PROTECTED] Quris, Inc. (720) 836-2058