2012-06-08 2 views
1

내 질문이 일에 관련이있을 것으로 보인다 호출ColdFusion은

Coldfusion memcached connections

을하지만, 내가 그것을 해결할 수 없었습니다.

내가 Application.cfm의에서이 코드를 넣을 경우 :

<cfif not IsDefined("application.memcached")> 
    <cfset application.memcachedFactory = createObject("component","memcachedFactory").init("192.168.2.91:11211")> 
    <cfset application.memcached = application.memcachedFactory.getmemcached()> 
</cfif> 

페이지가 아마 270 통화에 대해 작동합니다. 그러면 "Object Instantiation Exception"오류로 실패하기 시작합니다. 코드가 memcached와 제대로 대화하고 있습니다. 데이터를 보내고받을 수 있습니다. 그것은 자바처럼 뭔가가 부족한 것 같아요 .. 스레드, 소켓, 일종의 핸들. 나는 자바에 대해 거의 모르고 붙어있다.

답변

3

이것은 나에게 틀린 것 같습니다. 첫 번째 호출 후에이 코드가 다시 실행되는 이유는 무엇입니까? 그것은 당신이 당신의 객체에 대한 참조를 가지고있는 후에 1 번 실행되어야합니다. 나머지 application.cfm은 어떻게 생겼습니까? cfapplication 태그에 "이름"을 추가 했습니까?

"name"(cfapplication 태그 또는 application.cfc의 "this.name")을 통해 응용 프로그램을 설정하지 못하면 "application.x"변수가 일반 변수처럼 처리됩니다. 페이지 요청이 끝난 후에는 "사라져"다시 객체를 다시 인스턴스화하라는 다음 요청이 필요합니다.

이 경우 "isDefined()"의 목적은 한 번만 실행되도록 보장하는 것입니다. 다시 인스턴스화하지 않고 계속 사용할 수있는 단일 톤 (단일 참조)을 제공합니다. 응용 프로그램의 "내부"에 있지 않은 것 같습니다.

+0

나는 그것이 여러 번 실행되고 있는지 확인했습니다. 즉, isDefined는 아무것도하지 않습니다. 나는 application.cfm을 더 검사 할 것이다. –

+1

cfapplication 태그는이 코드 이후였습니다. 나는 코드 앞에 넣고 지금은 그 위대한 작동 –

+0

... 나는 감정을 가지고 :) –

관련 문제