2017-10-13 24 views
0

하나 있습니다. 클라이언트와 서버 코드 간의 모든 통신에 사용하는 cfc 이 cfc 페이지에는 약 10 가지 기능이 있습니다. 각 함수는 목적이 다르기 때문에 선택, 삽입, 업데이트 및 삭제에 대한 쿼리가 있습니다. 나는 timeout을 페이지의 상단 cfcomponent 태그 안에 설정해야하는지 또는 각 기능의 내부에 설정해야하는지, 아니면 이것을 필요로하는지 궁금합니다. 현재 시스템에는 다음과 같은 몇 가지 오류 메시지가 있습니다. The request has exceeded the allowable time limit Tag: CFQUERY.ColdFusion에서 .cfc 페이지의 시간 제한을 설정 했습니까?

내 응용 프로그램에서 비슷한 오류 메시지를 방지하고 싶습니다. 다음은 내 cfc 페이지의 예입니다.

<cfcomponent> 
    <cfset currentDate = DateFormat(Now(),'mm/dd/yyyy')> 
    <cfset currentTime = TimeFormat(Now(),'hh:mm tt')> 

    <cfinvoke component="appEntry" method="getRecord" returnvariable="CHKAccess"> 
     <cfinvokeargument name="user" value="userdata"/> 
     <cfinvokeargument name="app" value="myApp"/> 
    </cfinvoke> 

    <cfset adminAccess = false> 
    <cfset userAccess = false> 

    <cfif CHKAccess.RecordCount EQ 1> 
     <cfif CHKAccess.pd_hfmAccess EQ 'A'> 
      <cfset adminAccess = true> 
     </cfif> 
     <cfif CHKAccess.pd_hfmAccess EQ 'U'> 
      <cfset userAccess = true> 
     </cfif> 
    </cfif> 

    <cffunction name="getData" access="remote" output="true" returnformat="JSON"> 
     <cfargument name="keyVal" type="string" required="true"> 

     <cfset fnResults = structNew()> 

     <cfif userAccess> 
      <cfquery name="getRec" datasource="tes"> 
       SELECT some columns 
       FROM Test 
      </cfquery> 

      <cfset fnResults.status = "200"> 
     <cfelse> 
      <cfset fnResults.status = "400"> 
      <cfset fnResults.message = "Invalid access attempt."> 
     </cfif> 

     <cfreturn fnResults> 
    </cffunction> 

    <!--- More functions below ---> 
</cfcomponents> 

누구에게 가장 좋은 수정 사항이 있다면 알려주십시오. 고맙습니다.

+1

여기에 Application.cfc 또는 Application.cfm이 있습니까? –

+0

@DanBracuk it 's Application.cfc –

+0

모든 페이지에서 시간 초과를 설정하려면 Application.cfc의 onRequestStart 메소드에 코드를 작성하십시오. 그러나 쿼리에 대한 기본 제한 시간도 있습니다. 어느 것이 느린 지 알고 있다면, 그것들을 더 길게 타임 아웃하십시오. –

답변

4

해당 long-running cfquery이 포함 된 방법에서 requesttimeout을 설정해야합니다.

단 하나의 메소드에 대해 모든 메소드를 "처벌"하고 싶지는 않습니다. 당신이 모든 것을 위해 그것을 설정한다면, 당신이 신경 쓰지 않는 한, 어떤 것이 느리고 어떤 것이 괜찮은지 어떻게 알 수 있습니까?

+0

대부분의 이러한 cfqueries는 단일 레코드에 사용됩니다. 그러나 어떤 상황에서는 5 또는 6k 이상의 많은 수의 레코드를 가져올 수 있습니다. –

+0

저는 이런 식의 모범 사례가 무엇인지 궁금합니다. –

+0

ColdFusion Administrator 서버 모니터가 도움이 될 수있는 '느리지 만 괜찮은 것을 어떻게 알 수 있습니까?'와 관련하여 도움이 될 수 있습니다. –