2013-04-12 2 views
1

필자는 레코드 집합을 반환하는 저장 프로 시저에 데이터를 연결하는 매우 기본적인 응용 프로그램을 가지고 있습니다. 나는 '타임 아웃'이라고 생각했던 것을 경험해왔다. 그러나, 나는 이제 이것이 실제로 일어나고 있음을 더 이상 확신하지 못했습니다. 그 이유는 DBA와 SQL Server가 스토어드 프로 시저가 처리를 마칠 때 스포트라이트를 보았 기 때문입니다. 프로 시저가 처리를 끝내고 레코드 세트를 반환하자마자 ColdFusion 페이지가 '시간 초과'오류를 반환했습니다. 나는이 절차가 1 분보다 오래 걸릴 때마다 일관성이 있음을 발견하고 있습니다. 내가에서는 ColdFusion에서 다시 결과를 얻을 59초 그것을 실행하는 경우CFStoredProc Timing Out

BEGIN 

    WAITFOR DELAY '00:00:45'; 
    SELECT TOP 1000 * 
    FROM AnyTableName 

END 

이를 증명하기 위해,이보다 더 아무것도 저장 프로 시저를 만들었습니다. 나는 1 분을 변경하는 경우 :

WAITFOR DELAY '00:01'; 

나는 cfstoredproc 시간 초과 오류가 발생합니다. 나는 ColdFusion의 다른 인스턴스에서 동일한 서버, 다른 데이터베이스/데이터 소스에서이 작업을 실행 해 보았습니다. 이제 이상한 점은 1 분 이상 실행되어 결과를 반환하는 다른 절차가 있다는 것입니다. 필자는 ColdFusion 10을 사용하여 데스크탑에서 로컬로이 작업을 시도해 본 결과 동일한 결과를 얻었습니다. 이 시점에서 나는 외모가 없어서 다른 것들을 시도하고 있습니다. 나는 또한 데이터 소스 연결 시간 제한을 늘 렸는데 도움이되지 못했습니다. 나는 심지어 ColdFusion 10을 timeout 속성으로 시도했지만 거기에는 운이 없었습니다. 일관성있는 것은 쿼리가 완료 될 때 제한 시간 오류가 표시된다는 것입니다.

또한 WAITFOR를 cfquery에 추가하려고 시도했지만 동일한 결과가 발생했습니다. 59 초로 설정하면 작동하지만 1 분으로 바뀌면 시간 초과되었습니다. SQL을 상위 1을 선택하도록 변경할 수 있으며 결과에 차이가 없습니다.

+1

cfsetting을 사용하여 페이지 시간 제한을 연장 해 보셨습니까? '' – Travis

+3

ColdFusion Administrator에서 해당 데이터 소스에 대한 쿼리 시간 초과 설정은 무엇입니까? 이전 버전의 ColdFusion에서는 cfquery 태그의 시간 초과 설정이 실제로 작동하지 않는다고 생각합니다. 글쎄, 당신이 설명하는대로 작동했습니다. 태그는 데이터베이스 서버가 응답 (좋거나 나쁨) 할 때까지 대기 한 다음 시간 초과를 발생시킵니다. 관리자의 datasource timeout 설정으로이를 해결할 수 있습니다. 이것을보십시오 : [CF9 (and 9.0.1)의 새로운 기능 : 실제 작동하는 질의 타임 아웃] (http://www.carehart.org/blog/client/index.cfm/2010/7/14/) hidden_gem_in_cf9_admin_querytimeout). –

+0

ㅎ, 나는 그것을 읽었던 것을 기억한다. 꽤됐다. – Travis

답변

3

의견에 따르면 요청 시간 제한이 60 초로 설정되어있는 것 같습니다.

cfsetting을 사용하면 시간 제한을 원하는만큼 확장 할 수 있습니다.

0

모든 페이지의 기본 시간 초과는 60 초이지만 cfadmin에서 충분하지 않을 경우이 값을 변경해야하지만 대부분의 페이지에서이 시간이 길어서는 안됩니다. 머리 부분이 긁히지 않도록 cfadmin과 모든 설정을 익히십시오. 명시된 바와 같이 cfsetting 태그를 사용하여 특정 페이지를 재정의합니다.

+0

이것은 CF 관리자에게 익숙하지 않은 문제가 아닙니다. CFStoredProc은 CF 외부의 외부 소스에 의존하는 타임 아웃을 무시합니다. 그것은 SQL에서 결과 집합을받을 것이지만 정확한 시간에 시간 초과를 던질 것입니다. 이것은 'headscratching'이 시작된 곳입니다. 나는 CF Admin에서 DNS와 다른 모든 것들에 질의 타임 아웃 설정을 조정하는데 많은 시간을 보냈다. 나는 CF10의 타임 아웃 설정이 문제를 해결했을 것이라고 생각했지만 그 역시 작동하지 않았습니다. 이것이 제가 도움을 구하는 이유입니다. 나는 그것을 스스로 연구하지 않았습니다. Tx ... – user2274650

+1

쿼리가 네이티브 java 프로세스이므로 실행하는 데 시간이 너무 오래 걸리면 cf가 데이터베이스에 연결되어있는 동안 실행중인 요청을 죽일 수 없으므로 페이지 시간 초과가 실제로 작동하지 않습니다. 그러나 쿼리가 실행될 때가 60 초를 넘지 만 결과가 마지막으로 cf로 반환 될 때 페이지가 실제로 60 초 이상 실행 되었기 때문에 시간 초과가 발생합니다. 희망이 맞는 것 같습니다. 수정 사항을 입력하여 죄송합니다. 텍스트 영역에서 Enter 키를 누르면 양식이 제출됩니까? 이상한 – snake