2014-04-09 19 views
1

ORA-24550 : 신호가 수신 된 것을 알고 싶습니다. [si_signo = 6]은?ORA-24550 : 신호 수신 : [si_signo = 6] 오류

나는 이것이 오라클 오류이며 오라클 최신 패치로이 문제를 해결할 수 있음을 알고 있습니다.

이 신호가 처리되어야하는 시나리오와 같이 응용 프로그램이 오라클과 관련된 문제를 처리해야 할 때이 오류가 발생하는지 여부와 같은 오류가 발생하면 응용 프로그램이 오류를 발생시킵니다.

답변

1

오라클은 고유 한 신호 처리기를 설정하므로이 오류는 처리되지 않은 sigabort 신호 때문일 수 있습니다. 오라클이이 오류를 제공하는지 여부를 알기 위해 oracle 신호 처리를 비활성화하거나 완전히 다른 이유가있을 수 있습니다. 비활성화하려면 DIAG_SIGHANDLER_ENABLED = FALSE를 sqlnet.ora 파일에서 설정하십시오. 나는 그 이유가 신탁 그 자체라고 생각하지 않는다.

4

이것은 오라클 클라이언트가 기대하지 않았던 신호를 수신했다는 신호입니다. Oracle docs 말 : 기본적으로

ORA-24550: unhandled signal #number received. string

Cause: Serious error: signal received

Action: Refer to the platform-specific signal code, and see if the application code caused the error. Otherwise, record all error state and notify Oracle Support Services.

오라클은 자신의 신호 처리기를 등록하지만, you can configure it to let signals propagate instead.

당신은 일반적으로 같은 로그 행이 표시됩니다

ORA-24550: signal received: [si_signo=6] [si_errno=0] [si_code=1] [si_int=597680428] [si_ptr=0x239fe290] [si_addr=0x3f445c43c0] 

을 당신은 역 추적을 너무 볼 수 있습니다.

디버깅하려면이 신호를 생성하는 것을 찾아야합니다. si_signo=6 우리는이 $ man 7 signal 함께 신호하는 알 수는 신호 (6)을 받고 있다는 것을 의미한다

Standard Signals

Signal  Value  Action Comment 
------------------------------------------------------------------------- 
SIGHUP  1  Term Hangup detected on controlling terminal 
           or death of controlling process 
SIGINT  2  Term Interrupt from keyboard 
SIGQUIT  3  Core Quit from keyboard 
SIGILL  4  Core Illegal Instruction 
SIGABRT  6  Core Abort signal from abort(3) 
SIGFPE  8  Core Floating point exception 
SIGKILL  9  Term Kill signal 
SIGSEGV  11  Core Invalid memory reference 
SIGPIPE  13  Term Broken pipe: write to pipe with no readers 
SIGALRM  14  Term Timer signal from alarm(2) 
SIGTERM  15  Term Termination signal 

우리는 당신이 SIGABRT을 받고있어 볼 수 있습니다. 보통 something is calling abort()을 의미합니다.

+1

이러한 오류 중 하나의 공통 원인은 멀티 스레딩을 활성화하지 않고 멀티 스레드 방식으로 Oracle을 사용하려고 시도하는 것입니다. 예를 들어, 파이썬에서는'cx_Oracle.Connection ("foo", threaded = True)'를 수행해야합니다. –

1

비슷한 오류가 있었지만, 내 경우에는 Red Hat 6.5에서 작업 중이었고 Oracle DB는 다른 서버에있었습니다. 문제는 내 레드햇 서버에 로컬했다, 여기에 오류 : 내 경우

ORA-24550: signal received: [si_signo=11] [si_errno=0] [si_code=1] [si_int=1147687784] [si_ptr=0x7f8f44685368] [si_addr=0x7f8f1c001000] 

는 수정 난 스택 크기 제한된 양을 가지고, 매우 간단했다, 임시 방편 무제한

로 변경했다
$ ulimit -s unlimited 

그런 다음 응용 프로그램을 시작하려고했지만 문제가 없어졌습니다. 이 솔루션은 실제로 스택 크기 인덱스에 더 높은 값을 설정해야한다는 것을 이해 시켰습니다. 값을 늘리는 것이 좋지만 무제한을 사용하지 않는 것이 좋습니다. 좋은 연습이 아니므로 서버가 다운되거나 성능 문제가 발생할 수 있습니다.

관련 문제