Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> ORA-03106: fatal two-task communication protocol error

ORA-03106: fatal two-task communication protocol error

From: Alex Vinokur <alexander.vinokur_at_telrad.co.il>
Date: Mon, 03 Jan 2000 07:36:28 GMT
Message-ID: <84pjhr$o1f$1@nnrp1.deja.com>


Hi,

I have got ORA-03106: fatal two-task communication protocol error.

Oracle8 Documentation recommends the following action: Action: Contact customer support.

//--------------------

Oracle8 Error Messages
Release 8.0.4
A58312-01
//--------------------

        Is there another action?
        Thanks in advance,

        Alex

//#########################################################
//------------------- Pro*C++ code : BEGIN ----------------

EXEC SQL BEGIN DECLARE SECTION;
const int               MAX_SIZE     = 2001;
EXEC SQL END DECLARE SECTION; typedef char asci_str [MAX_SIZE];

EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL TYPE asci_str IS STRING(MAX_SIZE) REFERENCE; EXEC SQL END DECLARE SECTION;

//-------------------------------------------------
void sql_error_print (const RWCString&        msg_i)
{
        EXEC SQL WHENEVER SQLERROR CONTINUE;

        cout << endl;
        cout << "######## ORA ERROR : BEGIN ########";
        cout << endl;

        cout << msg_i

<< "; sqlca.sqlcode = "
<< sqlca.sqlcode
<< endl;
cout << ""
<< sqlca.sqlerrm.sqlerrmc
<< endl;
cout << "######## ORA ERROR : END ##########"; cout << endl; EXEC SQL WHENEVER SQLERROR CONTINUE;

} // void sql_error_print ()

//-------------------------------------------------
RWBoolean tableExists (const RWCString& tableName_i) {
const RWCString funcName = "tableExists";

        EXEC SQL WHENEVER SQLERROR CONTINUE;

RWBoolean       ret_boolValue = FALSE;
RWCString       tmp_str;

        tmp_str = "SELECT TABLE_NAME FROM "
                + USER_tables_ORA_CNS
                + " WHERE TABLE_NAME='"
                + tableName_i
                + "'";

EXEC SQL BEGIN DECLARE SECTION;
const char      *host_command_line  = ((const char*)tmp_str);
asci_str        host_chars;
short           host_ind;

EXEC SQL END DECLARE SECTION;
        //===========================
        EXEC SQL WHENEVER SQLERROR GOTO case_PREPARE_error;
        EXEC SQL PREPARE the_exec FROM :host_command_line;

        //===========================
        EXEC SQL WHENEVER SQLERROR GOTO case_DECLARE_error;
        EXEC SQL DECLARE the_cursor CURSOR FOR the_exec;

        //===========================
        EXEC SQL WHENEVER SQLERROR GOTO case_OPEN_error;
        EXEC SQL OPEN the_cursor;

        //=============================================
int count;
        for(count = 0; ;count++)
        {
                EXEC SQL WHENEVER SQLERROR DO sql_error_print ("FETCH
the_cursor");
                EXEC SQL FETCH the_cursor INTO :host_chars INDICATOR
:host_ind;
                //======================================
                switch (sqlca.sqlcode)
                {
                        case 0 :
                        case 1403 :
                                // Empty
                                break;

                        default :
                                sql_error_print ("ILLEGAL sqlcode ERROR
VALUE");
                                assertion (0);

                } // switch (sqlca.sqlcode)
                //=======================================

                //=======================================
                if (sqlca.sqlcode == 1403)
                {
                        break;
                }
                //=======================================

                ret_boolValue = TRUE;
                //===========================================

        } // for(int i = 1; ;i++)

        EXEC SQL WHENEVER SQLERROR GOTO case_CLOSE_error;
        EXEC SQL CLOSE the_cursor;
        return ret_boolValue;
        //=================================

        //#################################
        //=================================
        case_PREPARE_error :
                return FALSE;

        case_DECLARE_error :
                return FALSE;

        case_OPEN_error :
                return FALSE;

        case_CLOSE_error :
                return FALSE;

} // RWBoolean tableExists(const RWCString&

//------------------- Pro*C++ code : END ------------------





//#########################################################
//-------------- Results of the Running : BEGIN -----------

FETCH the_cursor; sqlca.sqlcode = -3106 ORA-03106: fatal two-task communication protocol error

//-------------- Results of the Running : END -------------

//#########################################################
//------------------- Environment -------------------------

=== Oracle 8.0.5
=== Pro*C/C++ : Release 8.0.5.0.0
=== RogueWave Tools.h++  : 7.0

=== CC: WorkShop Compilers 4.2 30 Oct 1996 C++ 4.2 === SunOS 5.6
//---------------------------------------------------------

//#########################################################



Sent via Deja.com http://www.deja.com/
Before you buy. Received on Mon Jan 03 2000 - 01:36:28 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US