2012-01-19 2 views
0

jboss를 처음 사용하여 web.xml의 ServiceMBean과 load-on-startup 서블릿 태그의 차이점을 알고 싶습니다. 또한 어느 것이 항상 처음으로로드되는지 또는 동시에로드되는지를 알고 싶습니다. 어떤 상황에서 MBean을 사용해야하며 시동 서블릿을 사용해야하거나 중요하지 않습니다.시작 클래스 (ServiceMBean 확장) vs load-on-startup 서블릿

모든 필수 시스템 속성 (예 : -DINSTALL_DIR = blah)이 설정되어 있는지 확인하기 위해 클래스/서블릿을 작성해야합니다. 그렇지 않다면, 바로 거기에서 멈추십시오. 그렇지 않으면 응용 프로그램을 시작하고 시작하십시오. 사전에

덕분에

-A

답변

1

ServiceMBean은 당신의 JVM의 일부, JMX입니다. web.xml의 load-on-startup 서블릿 태그는 J2EE 응용 프로그램의 일부입니다.

JMX는 JDK 1.5부터 J2SE의 일부입니다. 따라서 JVM 당 하나의 ServiceMBean을 가질 수 있습니다. 응용 프로그램 별이 아님. JMX는 JVM 모니터링 및 관리에 주로 사용됩니다. 로드 된 클래스 수 및 실행중인 스레드 수, 메모리 사용량, 가비지 수집 통계, 주문형 교착 상태 감지 및 기타 정보와 같은 정보에 대한 액세스를 제공합니다. 또 다른 일반적인 용도는 캐시를 새로 고치는 것입니다.

JMX를 사용하면 JMX 컨테이너가 지원하는 관리 콘솔을 사용하여 애플리케이션을 계측하고 제어/모니터링 할 수 있습니다. 예를 들어 참조 데이터 캐시를 구현하는 웹 응용 프로그램이 있습니다 ...

이전에 문제가 있었지만 고객 이름이 데이터베이스에서 변경 되었기 때문에 캐시를 새로 고쳐야하는 경우가있었습니다. MBean 인터페이스에서 새로 고침 메서드를 사용했다면 JMX 콘솔을 사용하여이 이벤트를 트리거 할 수 있어야합니다. JMX 콘솔은 J2EE 서버와 함께 제공되는 웹 또는 팻 클라이언트 일 수 있습니다. 우리의 J2EE 서버는 SNMP를 지원할 수도 있습니다. 즉, 표준 Tivoli 또는 UniCenter 콘솔에서 메소드를 호출 할 수 있습니다. http://www.theserverside.com/news/1364664/J2EE-Application-Management-The-Power-of-JMX

당신은 어떤 asynchrious 액션을 트리거하기 위해 ServiceMBean에 대한 원격 액세스를 필요가 없습니다. 또한 전체 JVM이 아닌 애플리케이션 범위에 대한 유효성 검사가 필요합니다 (이론적으로 ServiceMBean에서이 문제를 처리 할 수있는 반면). 따라서 web.xml의 load-on-startup 서블릿 태그로 사용하는 것이 더 자연스러운 방법입니다. 이렇게하면 응용 프로그램을 시작할 때마다 유효성 검사가 수행됩니다.

한 번 더 설명 : ServiceMBean는 JMX를 작성하는 JBoss의 방향입니다. 모든 MBeans는 서버 전체 (애플리케이션 폭이 아닌)입니다. 이것이 MBean과 ServiceMBean을 자유롭게 사용하는 이유입니다.