2012-09-28 6 views
2

제목에 거의 모든 내용이 나와 있습니다. 단일 서버 ColdFusion 설치에서 다중 서버 ColdFusion 설치로 전환하고 세션 복제는 응용 프로그램 이름을 설정하면 작동합니다.ColdFusion 9 다중 서버 설정 : 응용 프로그램 이름을 설정하면 세션 복제가 수행되지 않습니다.

다음은 세션을 성공적으로 복제하지 않는 줄여서 잘라낸 application.cfc입니다.

component 
    { 
     this.name    = 'myTestApp'; 
     this.sessionManagement = true; 
     this.sessionTimeout  = createTimeSpan(0,2,0,0); 
    } 

응용 프로그램 이름을 주석 처리하면 세션 복제가 제 서버간에 완벽하게 작동합니다. 내가 this Adobe help page 믿을

는 접선 문제를 참조 :

당신이 Application.cfc 초기화 코드에서 This.name 변수 또는 ColdFusion에서 cfapplication 태그를 사용하여 응용 프로그램 이름을 지정하지 않을 경우, 응용 프로그램의 이름이 지정되지 않고 응용 프로그램 범위 은 ColdFusion J2EE 서블릿 컨텍스트에 해당합니다. 따라서 ColdFusion, 은 이름없는 응용 프로그램을 하나만 지원합니다.

여러 cfapplication 태그와 Application.cfc 파일에 응용 프로그램 이름을 지정하지 않으면이 응용 프로그램의 모든 페이지가 해당 응용 프로그램 범위로 서블릿 컨텍스트를 공유합니다. 익명의 응용 프로그램의 모든 세션은 J2EE 응용 프로그램 서버의 세션 객체에 직접 해당합니다. (당신이 J2EE 세션 변수를 사용하지 않는 경우, ColdFusion은 J2EE 세션이 세션 시간 제한 적어도 오래 지속되도록합니다.) "

그것은 분명 application.name 사용을 중지하는 것이 좋습니다로 간주 아니에요 하지만 J2EE/JRun 서블릿 컨텍스트에서 응용 프로그램 이름을 등록하는 방법이 있습니까? 모든 CF 응용 프로그램에 대해 별도의 인스턴스 클러스터를 설정하지 않아도됩니다. 서버에서 실행 중이며 확장 가능한 솔루션처럼 보이지 않습니다.

나는 여기서 자바가 아닌 매우 단순한 뭔가를 놓친 것처럼 느낍니다. 전문가, 그러나 어떤 조언 부탁드립니다 .- 윌

답변

0

여기에 몇 가지 생각입니다 :

  • 당신이 J2EE 세션이 모두 CF 인스턴스에 사용할 수 있습니까?
  • CF 서버가 모두 정확히 동일한 버전의 CF & JRun에 있습니까?
  • 동일한 Java 버전을 실행하고 있습니까?

JRun 또는 Coldfusion의 로그에 아무 것도 표시되지 않습니까?

세션이 복제에 실패하면 로그에 해당 세션이 표시됩니다. 안정성 문제 (주로 클러스터 멤버 수가 많음)로 인해 JRun/CF에서 세션 복제를 포기했지만 응용 프로그램 이름이있는 응용 프로그램으로 실행 했으므로 가능한 것으로 알고 있습니다.

2

우리는 ColdFusion (J2EE) 클러스터링을 사용하여 다수의 클러스터를 구성했으며 안정적으로 그리고 항상 정의 된 ColdFusion 응용 프로그램을 사용하여 세션 복제를 실행했습니다. 버전 6에서는 의심의 여지가 없습니다.1에서 8까지는 매우 힘들었습니다. CF9를 사용하면 확실히 개선되었습니다. 그러나 ColdFusion을 클러스터링하는 것은 간단한 포인트 앤 클릭 방식이 아니므로 신중하게 작성해야합니다. 모든 서버에서 다중 인스턴스 생성으로 시작; 그 시점에서 각 인스턴스가 예상대로 개별적으로 콘텐츠를 제공하는지 확인하는 검사; 우리는 클러스터 멤버 추가 (최근에 생성되고 테스트 된 인스턴스)를 생성 할 수 있습니다.

"라운드 로빈"을 "고정 세션"으로 설정하는 것이 좋습니다.하지만 클라이언트가 라운드 로빈 만 사용할 수 있도록 설정하는 것이 좋습니다. 이 프로세스의 모든 단계에서 변경 또는 추가가 발생할 때마다 모든 인스턴스를 다시 시작해야하며이 스레드의 Barney에 의해 잘 설명 된대로 클러스터와 관련된 오류가 없는지 확인하기 위해 다시 시작할 때마다 {instance}-out.log을 확인해야합니다. {instance}-out.log에 클러스터링 오류가없는 경우에만 클러스터링이 올바르게 작동하며 클러스터가 완전히 구성 될 때까지 어떠한 판단이나 가정도하지 않습니다.