I have a 8.1.7 database and a 7.3.4 database on Sun Solaris machine. I want to export the 8i database to 7.3. I have executed the catexp7.sql in the 8i database prior to running the 7.3 export utility against it. I get the following error when I execute the 7.3 export against 8i database.
EXP-00008: ORACLE error 3106 encountered
ORA-03106: fatal two-task communication protocol error
EXP-00222: Message 222 not found; product=RDBMS; facility=EXP
Can you tell me what is the problem and how can it be rectifed?
I think this note from Metalink should help.
The customer has a database that is using a character set other than US7ASCII and is getting an ORA-3106 fatal two-task communication protocol error.
NLS character set conversion can be the cause of this problem due to an incorrect NLS environment setup. This causes the connection to be terminated.
When an user gets an ORA-3106 error, this can be caused by a difference in database and client character sets used. To retrieve the database character set, you need to log on to the database using a DBA account and execute:
SELECT value FROM NLS_DATABASE_PARAMETERS WHERE parameter = 'NLS_CHARACTERSET';
The client character set can be obtained from the NLS_LANG environment variable or registry entry.
When the database and client character sets differ you need to set a proper ORA_NLS32 (for Oracle7 V7.3.x) or ORA_NLS33 (for Oracle8 and higher) environment variable or registry entry to point to the NLS environment local to the Oracle environment. The environment variable must be set prior to starting the Oracle database and/or client tools. E.g. for an Oracle8i installation on an UNIX system, the ORA_NLS33 environment variable must point to the following directory:
An invalid value for ORA_NLS32 or ORA_NLS33 will result in the ORA-3106 error to be raised.
What happens with NLS character sets is that the data being returned will be translated into the character set specified by NLS_LANG. The ORA_NLS32 and ORA_NLS33 environment variables point to the files used by a character set conversion. When these environment variables point to an invalid location, no conversion can take place, causing the ORA-3106 error to be raised.