2010-05-14 4 views
2

이제 확장 프로 시저를 호출하는 프로 시저를 만들려고합니다.SQL Strange Timeout 문제

Msg 121, Level 20, State 0, Line 0 
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - The semaphore timeout period has expired.) 

내가 그 오류 얻을 심지어 간단한 테스트로 : 난 그냥 그 자체로 xp_cmdshell 'dir *.exe'를 실행하는 경우

CREATE PROCEDURE Test 
AS 
BEGIN 

EXEC xp_cmdshell 'dir *.exe' 

END 

를 작동 나는 다음과 같은 오류를 얻고있다.

이것은 클러스터 된 SQL 2005 서버에서 실행됩니다. 어떤 도움을 주셔서 감사합니다.

+0

"선택 1"만으로 PROC를 만들면 어떻게 될까? – gbn

+0

PROC를 만드는 것은 문제가되지 않습니다. 나는 문자 그대로 수천을 가지고있다. –

+0

다시 물어 보겠습니다 ... 질문에 "작성시 오류가 발생합니다"라고 표시됩니다. 의견은 "PROC 생성은 문제가 아닙니다"라고 말합니다. 그래서,이 저장된 proc 파일에 대해서만 CREATE 에러가 발생합니까? – gbn

답변

1

프로 시저를 만들 때 또는 실행시 오류가 발생합니까?

실행하면 얻을 수있는 권한이있는 문제 일 수 있습니다. 이후 버전의 SQL Server 호출 xp_cmdshell은 단단히 잠겨져 있으며 기본적으로 표면 영역 구성에서 활성화되어 있지 않으므로이 문제가 발생할 수 있습니다.

SP에 신고 하시겠습니까? 동적 SQL을 사용하는 경우 SP 작성자가 아닌 호출자의 권한으로 실행된다는 것을 알고 있어야합니다.

master.dbo.xp_cmdshell과 같이 SP에 접두사를 추가해야합니까?

SP 생성 또는 SP 실행 중에 EXECUTE AS을 시도한 적이 있습니까?

또한 내 경험상 서버의 문제로 인해 전송 수준 오류가 발생하는 경우도 있지만 서버가 연결 객체를 캐싱하여 클라이언트가 연결 객체를 캐싱 할 때 문제가 발생하여 연결 객체가 무효화됩니다. . 당신이 아마도 초기에 연결하는 짧은 시간 내에 이것을 실행한다고 가정하면 정확한 문제는 아니지만 프록시/방화벽/네트 필터 문제를 일으킬 수 있습니다. 패킷의 특정 키워드를 탐지합니까? 나는 이것이 길다는 것을 알고 있지만 물어야 만했다. ...

+0

원인이 귀하가 진술 한 것이지만 가장 가까운 것이 무엇인지는 확실하지 않습니다. 그것은 때때로 달리고 다른 사람을 실패 할 것이다. –