2010-07-01 4 views
3

어디서든 JBoss 문서에서이 파일을 찾을 수 없으므로 여기에서 묻습니다.JBoss EJB2 타이머 서비스 - 다중 서버, 단일 TIMERS 테이블?

여러 수, non - 클러스터 된 JBoss 인스턴스는 서로를 괴롭히지 않고 동일한 TIMERS 테이블에 액세스하고 공유합니다 (각각 EJB2 타이머 서비스에서 사용하는 것과 동일) 또는 각각 자체 테이블이 필요합니까?

클러스터의 경우 클러스터의 노드가 모두 TIMERS 테이블에 액세스하거나 네트워크를 통해 정보를 직접 공유해야합니까?

미리 감사드립니다.

리치

답변

1

이 오래된 질문이지만, 어쩌면 아직도 누군가를 위해 도움이 될 수있다, 그래서 그것을 대답하려고합니다.

클러스터에서 실행되지 않는 다른 서버간에 동일한 Timers 테이블을 공유 할 수 있다고 가정하면 (실제로 가능하다고 생각합니다) TimerService 구현과 관련된 몇 가지 문제가 나타납니다 (예 : 각 서버가 배포 된 것으로 가정). 동일한 Timers는이 테이블의 다른 레코드와 연관된 각 Timer 인스턴스가됩니다. 그렇다면 타이머가 만료되면 비즈니스 논리가 두 번 이상 실행됩니다. 배포 프로세스가 타이머 당 레코드 만 생성하는 경우 다른 TimerServices가 동일한 정보에 동시에 액세스/수정하려고하면 TimerService가 제대로 실행됩니까?

반면에이 아이디어의이면에있는 일종의 내결함성을 얻으려면 모든 서버가 동일한 타이머를 배포해야한다는 문제가 여전히 있습니다. 그렇지 않으면 TimerService가 다음과 같은 타이머를 실행하려고 시도 할 수 있습니다. 서버에 배포되지 않습니다.

고 가용성을 제공하기위한 솔루션은 이미 구현되었으며 HATimerService라고합니다.

클러스터에는 하나의 테이블 만 있지만 차이점은 TimerService를 실행하는 노드가 실패하고 다른 노드가 마스터가되므로 시간별로 고유 한 TimerService가 활성화되어 있으므로 존재하지 않는 것입니다. 정보로 인한 노드는 데이터베이스에 있습니다.