2013-06-17 2 views
0

부하 분산 장치에서 실행중인 Notes 서버가 2 대 있습니다. 데이터베이스는 디렉토리 서비스를 사용하여 LDAP에 인증합니다.Java 코드가 두 번 실행 중임

사용자의 암호가 만료되었는지 확인하기 위해 LDAP를 검사하는 Java 코드가 있습니다. 암호가 만료되면 코드가 암호 변경 화면으로 리디렉션됩니다. 이 코드는 이전 페이지로드 이벤트에서 실행됩니다. 모든 페이지는 공개 액세스가 아니기 때문에 Notes 생성 로그인은 아무 일도 일어나기 전에 발생합니다.

암호 변경 화면은 먼저 LDAP에서 사용자를 인증 한 다음 암호를 변경합니다. 그러나 초기 Notes 로그인 후 즉시 비밀번호를 변경하면 인증 오류가 발생합니다.

암호를 다시 동일한 것으로 변경하면 인증 오류가 발생하고 모든 것이 정상적으로 작동합니다.

그래서 Java 코드가 두 번 실행되는 것으로 의심됩니다. 메모 로그는 한 번만 실행해야합니다. 그러나 LDAP 팀이 로깅을 활성화하면 암호 속성이 두 번 변경되었음을 알 수있었습니다 (동일한 암호로 변경했을 때). 따라서 실패는 암호가 성공적으로 변경되었지만 두 번째로 코드가 실행되면 "이전"암호를 사용하고 있었고이 오류가 브라우저로 반환되었습니다.

여기가 정말 이상하게 여기 있습니다. Notes 인증을 수행 한 다음 암호를 변경하기 전에 1 분 정도 기다리면 코드는 한 번만 실행됩니다.

또는 서버 중 하나를 방문하면 코드가 한 번만 실행됩니다.

코드 내가 바로 로그인 한 후 비밀번호를 변경하려고하면 내가로드 밸런서를 통해 이동하거나 경우에만 두 번 실행됩니다.

어떤 생각이 땅에서 무슨 일이 여기에 갈 수 있을까?

업데이트 : 문제는 Google의 역방향 프록시 서버에서 발생하는 것으로 보입니다. 우리 사이트의 구성 방법은 브라우저 -> 프록시 재 인증 ->로드 밸런서 -> (Notes Server 1, Notes Server 2)입니다. Load Balancer로 이동하면 코드는 한 번만 실행됩니다.

notes.nsf에서 로그인하는 것을 볼 수는 없지만 콘솔에서 직접 볼 때 두 번 실행되는 것을 볼 수 있습니다.

업데이트 : 역방향 프록시가 Apache에서 실행 중입니다. 확실하지 버전.

+2

설명하기가 어렵습니다. LDAP 등으로 확인하는 코드 스 니펫과 같은 세부 정보를 게시 할 수 있는지 분석하는 데 도움이 될 것입니다. – Mubin

답변

0

제출을 누르면 내 이전 비밀번호 변경 페이지가 전체 페이지를 새로 고치고있었습니다. 어떤 이유로 이것이 페이지가 두 번 제출되는 원인이었습니다. 나는 일을 부분적으로 새로 고침했고 이제는 모든 것이 잘 돌아 간다. 새로 고침이 전체 새로 고침을 좋아하지 않는 이유를 알 수 없습니다. 하지만 지금은 효과가 있습니다. :)

관련 문제