| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> ORA-03106: fatal two-task communication protocol error
Hi,
I have got ORA-03106: fatal two-task communication protocol error.
Oracle8 Documentation recommends the following action: Action: Contact customer support.
//--------------------
//--------------------
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) {
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 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
//--------------------------------------------------------- //#########################################################
Sent via Deja.com http://www.deja.com/
Before you buy.
Received on Mon Jan 03 2000 - 01:36:28 CST
![]() |
![]() |