2013-06-04 4 views
0

클러스터의 각 노드에서 EJB 타이머 (@Schedule)를 실행할 수 있습니까? 타이머를 비 지속성으로 선언하는 것으로 충분합니까? 두 노드에서 모두 액세스 할 수있는 데이터베이스가 필요합니까? 아니면 내부 더비 데이터베이스를 사용할 수 있습니까?클러스터의 각 노드에서 EJB 타이머 실행

이 요구 사항의 배경은 각 노드의 메모리에있는 일부 데이터를 새로 고치는 것입니다.

AppServer는 Glassfish 3.1 (Java EE 6)입니다.

답변

2

예, 비 영구 타이머가 필요합니다. EJB를 3.1 사양에 따라 :

비 영구적 타이머 프로그래밍 또는 자동 (@Schedule 또는 배치 디스크립터를 사용하여) 생성 될 수있다. 자동 비 영구적 인 타이머를 들어, 컨테이너는 컨테이너가 분산되어있는 걸쳐 각 JVM에 대한 응용 프로그램 초기화하는 동안 새로운 비 영구적 타이머를 만듭니다.

(당신이 더비 네트워크 서버를 사용하는 경우 제쳐두고, Derby 데이터베이스 만 여러 프로세스에 의해 공유 될 수있다. 여러 애플리케이션 서버 프로세스는 동시에 Derby 데이터베이스를 열 수 없습니다.)