一个ORA-03106错误处理过程和其它
客户的应用程序在插入记录时遇到ora-03106错误。alert文件没有错误信息。
1. 查oracle错误信息
Cause: The communication path between Oracle and the user task has stopped. This is an internal error message not usually issued.
Action: Contact Oracle Support Services.
2. 要alert文件
没有相应错误记录
3. 查google
Troubleshooting
===============
Two-task common errors are generally RDBMS related issues, but could be caused by a problem with SQL*Net, or an application (i.e. Pro*C).
ORA-03106
======== Possible reasons for the ORA-03106 errors include:
1. Incompatibilities between the client application and the RDBMS server.
For example, version incompatibilities, or a client trying to use a feature not supported by the database kernel.
2. When using database links or gateways.
3. Network or SQL*Net problems.
4. Corruptions.
5. PL/SQL - language related.
RDBMS - Troubleshooting two-task common errors
==============================================
1. Check for NLS incompatibilities between the client and server. This is a very popular cause of the ORA-03106 error.
2. Check the alert log and RDBMS trace files for any pertinent information / errors that coincide with receiving the ORA-03106 error.
3. Try to get a testcase and reproduce the problem in-house.
4. If a testcase is not possible, ask for SQL*Net trace files, SQL traces, and try setting event 3106 to obtain the error stack.
5. In extreme circumstances, this could indicate that a shared memory segment used by Oracle is corrupted. You will have to shut down the database, possibly using the abort option. Make sure all semaphores have been released by using the IPCS command on Unix. Oracle uses semaphores to control concurrency between all of the background processes (pmon, smon, drwr, lgwr, and oracle shadow processes). Semaphores are also used to control Two-Task communication between the user process and the shadow process.
6. Try and narrow down the code that may be causing it. For example it might have started to happen after increasing the number of parameters in a PL/SQL block or when using certain values for bind variables, etc.
7. If we still do not make headway, file a bug under RDBMS, but we still may need some or all of the above information as indicated above
4. 让客户查客户端的NLS_LANG(服务器是GBK)
客户端zhs16cgb231280.
让客户端把客户端的修改维gbk测试。不再报错。
5. 其它
可能的进一步思路。
可以考虑客户端重启, 服务器上监控到新的oracle进程,然后trace 该进程,获得其执行的sql.
到服务器上用sqlplus连接执行测试。
--转自
该贴由koei123转至本版2015-6-2 9:08:47