前天应用测试的时候,说是应用出现了ORA-24550: signal received: [si_signo=6] [si_errno=0] [si_code=9][si_addr=0]的错误,Google了一下,解决方法就是在Server端或者Client端的sqlnet.ora文件里面添加如下内容:
DIAG_ADR_ENABLED=FALSE
DIAG_SIGHANDLER_EANABLED=FALSE
DIAG_DDE_ENABLED=FALSE
然后重启一下监听,我的是11g的rac环境,并且使用了scan,所以需要重启listener和scan_listener,在其中一个节点执行即可!
[rac11g2@root]# srvctl stop listener
[rac11g2@root]# srvctl stop scan_listener
[rac11g2@root]# srvctl start listener
[rac11g2@root]# srvctl start scan_listener
附上MOS上的官文:
ORA-24550 Signal Received Error From Client Based Application [ID 1284564.1] |
|
|
修改时间 01-JUL-2011 类型 PROBLEM 状态 MODERATED |
|
In this Document
Symptoms
Changes
Cause
Solution
References
This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process and therefore has not been subject to an independent technical review. |
Applies to:
Oracle Server - Enterprise Edition - Version: 11.2.0.1 and later [Release: 11.2 and later ]
Information in this document applies to any platform.
OCI, OCCI, Precompiler based Applications such as Pro*C, Pro*COBOL.
Symptoms
When trying to execute C program on Server - Oracle 11g 11.2.0.1 on IBM AIX 64 bit, 6.1, the following error message is received.
Application connects to Server with Oracle 11g 11.2.0.1:
ORA-24550 : signal received : [si_signo=11] [si_errno=0] [si_code=50] [si_adr = 2020202020202020] killed
Depending on the Operating System the stack would differ. For example;
Linux x86-64 would be something like;
/lib64/libpthread.so.0[0x3412a0673d] /lib64/libc.so.6(clone+0x6d)[0x3411ed44bd] ORA-24550: signal received: [si_signo=6] [si_errno=0] [si_code=-6] [si_int=0] [si_ptr=0x200000000] [si_addr=0x1f400001c43] kpedbg_dmp_stack()+314<-kpeDbgCrash()+166<-kpeDbgSignalHandler()+158<-skgesig_sigactionHandler()+217<-__restore_rt()<-gsignal()+53<-000000000DE723A0<-000000000DE723A0<...
Changes
Upgraded Database from Oracle 10g 10.2.0.1 to Oracle 11g 11.2.0.1
Cause
Diagnosability features which are turned on by default on Oracle 11g Release 2 causes the problem.
Parameters are:
DIAG_ADR_ENABLED
DIAG_SIGHANDLER_ENABLED
DIAG_DDE_ENABLED
Solution
1. Such errors can occur if the "Diagnosability" features are 'ON'.
To turn off the OCI signal handler and re-enable standard Operating System failure processing, place the following parameter setting in sqlnet.ora:
DIAG_SIGHANDLER_ENABLED=FALSE
By default this parameter is set to true.
If you want to see the old behavior you can simply turn off the feature by placing the following parameter setting in your client side sqlnet.ora file under $ORACLE_HOME/network/admin directory.
2. In addition, please turn off other Diagnostics parameters as well by placing the following entries in the client side or server sqlnet.ora file. i.e., from where the application is run.
DIAG_ADR_ENABLED=OFF
DIAG_SIGHANDLER_ENABLED=FALSE
DIAG_DDE_ENABLED=FALSE
References
BUG:9342118 - OCISTMTRELEASE CRASHES WITH CORE DUMP WHEN CALLED OUTSIDE A TRANSACTION
NOTE:1062759.1 - ORA-24550 AND CRASH IN OCISTMTRELEASE after client upgrade to ORACLE 11.2