2008-10-24 4 views
2

TIBCO EMS .NET 참조 가이드TIBCO EMS 서버가 재 연결을 관리합니까? 아니면 클라이언트가 있습니까?

가 재접속 동작 및 내결함성을 활성화하는 방법 (페이지 134)에서 serverURL을 매개 변수가 두 개 이상의 URL 쉼표로 구분 있어야했다. 하나의 서버 만있는 상황에서는 클라이언트 재 연결을 가능하게하기 위해 해당 서버의 URL 사본 두 개를 제공 할 수 있습니다 (예 : tcp : // localhost : 7222, tcp : // localhost : 7222).

TIBCO EMS 사용 설명서 (292 페이지)에서는 장애 조치 시나리오, 클라이언트 알림 및 클라이언트의 백업 서버로 자동 전송에 대해 설명하지만 특별히 "다시 연결"과 관련된 내용은 없습니다.

"다시 연결"시나리오에서 서버가 모든 것을 처리합니까? 또는 클라이언트가 TIBCO.EMS.Connection 인스턴스가있는 무언가를해야합니까?

+0

와우, 매우 흥미 롭습니다. 필자의 테스트에서 단일 서버 환경에서 내결함성을 가능하게하는 방법은 없다고 생각했습니다. 나는 이것을 시도해야 할 것이다. – ScottCher

+1

우리가 단일 서버 환경에서 테스트했기 때문에 기본 내장 재 연결이 작동하지 않았으며 분명히 작동하려면 장애 조치 환경이 필요합니다. 정말 고마워! – ScottCher

+0

추가 정보 : EMS 라이브러리가 재 연결 모드 인 동안 해당 연결에 게시를 시도했습니다. 예외를 throw하는 대신 게시는 다시 연결이 성공한 다음 메시지를 보낼 때까지 앱 잠금을 요청했습니다. 다시 연결하면 모든 시도가 실패하면 예외가 발생할 것으로 예상됩니다. – ScottCher

답변

2

이 기능을 사용하는 서버와 클라이언트 모두에 설정이 있음을 알 수 있습니다. 클라이언트 측에서 SetReconnAttemptCount, Delay, Timeout은 클라이언트가 서버 장애 조치/연결 장애 조치를 인식하면 다시 연결을 시도하는 시도를 제어합니다.

테스트에서는 단일 서버 환경을 사용하여 위에서 설명한 트릭을 사용하여 연결 문자열에 서버를 두 번 나열하고 해당 서버를 오프라인으로 전환 한 후 영향을받는 장애 조치 프로세스에 대한 클라이언트 알림을 받았습니다 (우리는 Tibems.SetExceptionOnFTSwitch (true)를 활성화 시켰습니다.) 그리고 서버가 다시 온라인 상태가되었을 때, 우리의 클라이언트는 비트를 놓치지 않고 간단하게 다시 연결되었습니다. 우리는 아무것도 코딩 할 필요가 없었습니다. 내부 재접속 로직은 마술을 작동 시켰습니다.

서버 측에서 내결함성을 활성화해야하며 서버 - 클라이언트 및 클라이언트 - 서버 하트 비트를 활성화해야한다고 생각합니다 (아직 검증되지는 않았지만).

희망이 도움이됩니다.

+0

따라서 기본 서버가 다운 될 때 장애 조치 알림 예외가 발생합니다 ... 기본 서버가 다시 연결되거나 백업이 인계 될 때 다른 서버가 있습니까? –

+0

아니요, 하나의 이벤트입니다. 백업 서버가 인계되면 기본 서버가되므로 다른 장애 조치가 발생하지 않으면 기본 서버가 유지됩니다. 또한 단일 서버 nonFT Env에서 우리는 연결 실패를 매우 빨리 겪습니다. FT env에서 재 연결이 성공한 후 failover msg가 겉으로보기에 나타납니다. – ScottCher