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: Morten Loberg <mlo_at_nrd.lt>
Date: 1998/01/08
Message-ID: <D8E12C10891FD11182A000A0C9495A5F0BAE7D@team.nrd.lt>#1/1

We have a special problem when using some stored functions (PL/SQL), which we hoped somebody out there could help us with!?

Here is some declarations and the function itself:

CREATE DATABASE LINK cdbclerk.limo
CONNECT TO CDBCLERK IDENTIFIED BY XCVYY89QQ USING 'limo'
/

The user CDBCLERK is defined with the following roles:

- CONNECT role
- EXECUTE ANY PROCEDURE
- SELECT ANY TABLE

/

Package LOCAL.LPCK_DEFS AS
  TYPE CursorType IS REF CURSOR;
END lpck_defs;
/

Function LOCAL.LSF_LOADPERSON
  ( ip_PersonCode IN varchar2,
    op_ResultCursor IN OUT lpck_defs.CursorType)   RETURN integer IS
BEGIN
  open op_ResultCursor for
    select IsForeigner, FirstName, LastName, Address     from shadow.S_Person_at_cdbclerk.limo
    Where PersonCode = ip_PersonCode;

    RETURN LPCK_CONST.LC_NOERROR; EXCEPTION
  WHEN OTHERS THEN
    RETURN SQLCODE;
END; We used the following wrapper in SQL Navigator to test the procedure, and the result is correct. It returns values from the s_person in shadow database without any errors.

DECLARE
  op_ResultCursor lpck_defs.CursorType;
  res Integer;

  l_IsForeigner Number;
  l_FirstName varchar2(100);
  l_LastName varchar2(100);
  l_Address varchar2(256);

BEGIN
  res := LSF_LOADPERSON('22222222222', op_ResultCursor);

  FETCH op_ResultCursor INTO
  l_IsForeigner, l_FirstName, l_LastName, l_Address;

  dbms_output.put_line('res = '||to_char(res));
  dbms_output.put_line('IsForeigner = '||to_char(l_IsForeigner));
  dbms_output.put_line('FirstName = '||l_FirstName);
  dbms_output.put_line('LastName = '||l_LastName);
  dbms_output.put_line('Address = '||l_Address);
END; The problem is when this procedure "lsf_loadperson('22222222222', op_ResultCursor);" is called from our client program written in C/C++ for Windows 32 bit (on SQL*Net 2). Then we get the following error (this is one error, not two!):
"ORA-03106: fatal two-task communication protocol error ORA-02063: preceding line from CDBCLERK.LIMO"

We would be very happy if you have any solution or workaround, and if you would consider this to be highly important, we would appreciate it!!

Regards,
Morten Received on Thu Jan 08 1998 - 00:00:00 CST

Original text of this message

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