ORA-3106 Error...

From: GMAYS <gmays_at_aol.com>
Date: 19 Dec 1994 14:24:38 -0500
Message-ID: <3d4mlm$45p_at_newsbf02.news-fddi.aol.com>


All:

I have been experiencing a perplexing problem when running an application on the various flavors of Oracle 7.0.15 and 7.0.16 on the Alpha AXP platform running OPENVMS 1.5 or 6.1. I've been trying to track this down for some time now and after several conversations with Oracle Tech Support and still having the problems intermittently I have decided to see if anyone else out there is getting it.

The application reads a lot of the Oracle metadata views like DBA_TABLES, etc. to get info on how the database is arranged, sized, etc. There are 25 cursors in the primary section which use embedded SQL via PRO*FORTRAN to extract the information from the views and place them in arrays for manipulation. The application is ported from VAX/VMS where it works fine, and it works fine on the Alpha here at our site on both 7.0.15.4 and 7.0.16.4, the problem is when the code is run at other sites (Alpha version only, VMS is fine) we get an ORA-03106 error and the fetching of information is incomplete.

ORA-3106 is defined as 'fatal two-task communication protocol error'
Cause: The communication path between Oracle and the user task has stopped. This is an internal message not normally issued. (I love that last one!!)
Action: Contact Worldwide Customer Support!

We weren't linking two-task, we were using shared!

When we first ported the application we encountered this problem on our machine and the magic solution was to rearrange the order of the bind variables for problem cursors!!! Yes, the order of the selection was causing a problem. I couldn't believe this but it did make it work on our machine. We went along happily then and started moving it to other sites where we still are encountering the problem.

Further calls to Oracle Tech Support have yielded interesting explanations/hypotheses:

  • That Error Message is bogus. The problem is originating in an upper layer of the Oracle Server and is being interpreted to the 3106 code which is misleading. The problem is still probably related to a disconnection of the process though.
  • Are you using SMP on the Alpha? No, why? Oracle 7.1.3 is the first Oracle version to support SMP on Alpha, previous versions have problems with SMP architecture on Alpha.
  • Are you using Null indicators on bind variable? Yes we are.
  • Try using the precompiler option DBMS=V6. These databases are 7.x, why should I use this? It will invoke a compatibility mode that may fix the problem.

I've created a special version with the DBMS compatibility mode but I'm not real impressed with this answer, we'll see what happens when the site gets this and tries it. It appears to be a purely environmental problem, it works fine here, why not elsewhere? I've compared all the V$PARAMETER settings and tried several way out scenarios all to no avail, I can't recreate the problem on our machine so that I can make corrections for it. The same code runs fine on VMS (of course recompiled)!

Has anybody else out there had similar problems or have suggestions for what environmental things I could investigate in relation to this problem? Any feedback would be greatly appreciated.

Thanks very much!

Greg Mays
Internet: gmays_at_aol.com
(This message has been posted to USENET comp.databases.oracle and in the Oracle Forum on Compuserve) Received on Mon Dec 19 1994 - 20:24:38 CET

Original text of this message