JavaTM Platform
Standard Ed. 6

javax.management
인터페이스 NotificationBroadcaster

기존의 서브 인터페이스의 일람:
ModelMBean , ModelMBeanNotificationBroadcaster , NotificationEmitter
기존의 구현 클래스의 일람:
CounterMonitor , GaugeMonitor , JMXConnectorServer , MBeanServerDelegate , Monitor , NotificationBroadcasterSupport , RelationService , RequiredModelMBean , RMIConnectorServer , StandardEmitterMBean , StringMonitor , Timer


public interface NotificationBroadcaster

Notification 를 발행하는 MBean 가 구현하고 있는 인터페이스. 이 인터페이스에 의해, 청취자를 통지 청취자로서 MBean 에 등록할 수 있습니다.

통지 발송

MBean 는, 통지의 발행시에,addNotificationListener 를 사용해 추가되어 한편 removeNotificationListener 를 사용해 삭제되어 있지 않은 각 청취자를 고려에 넣습니다. 청취자에 대해서 필터가 제공되어 그 필터의 isNotificationEnabled 메소드가 false 를 돌려주는 경우, 그 청취자는 무시됩니다. 그 이외의 경우, 통지, 및 addNotificationListener 에 제공된 핸드백 객체를 사용해, 청취자의 handleNotification 메소드가 불려 갑니다.

동일한 청취자가 여러 차례 추가되는 경우, 추가될 때마다 고려됩니다. 이것은, 1 살의 청취자를 다른 필터나 핸드백 객체를 사용해 추가하는 경우에, 자주 도움이 됩니다.

이 인터페이스의 구현은, 필터나 청취자의 메소드가 불려 가는 thread에 의해 다른 일이 있습니다.

필터 또는 청취자의 메소드 호출에 의해 Exception 가 throw 되는 경우, 다른 청취자의 호출이 그 예외에 의해 방해할 수 없게 할 필요가 있습니다. 다만, 메소드 호출에 의해 Error 가 throw 되는 경우는, 그 시점에서 통지의 처리를 정지하는 것이 추천 되고 있습니다. 또,Error 를 통지의 송신 측에 보내는 것이 가능하면, 그렇게 해 주세요.

새로운 코드는,NotificationEmitter 인터페이스를 사용할 필요가 있습니다.

이 인터페이스 및 NotificationEmitter 의 구현에서는, 동기를 주의 깊게 실시할 필요가 있습니다. 특히, 구현이 청취자의 호출시에 락을 보관 유지하는 것은, 좋은 방법이 아닙니다. 통지의 발송중에 청취자의 리스트가 변경될 가능성에 대처하는 좋은 방법은, 이 리스트로 CopyOnWriteArrayList 를 사용하는 것입니다.

도입된 버젼:
1.5

메소드의 개요
 void addNotificationListener (NotificationListener  listener, NotificationFilter  filter, Object  handback)
          이 MBean 에 청취자를 추가합니다.
 MBeanNotificationInfo [] getNotificationInfo ()
          이 MBean 가 송신할 가능성이 있는 각 통지에 대해, 그 통지의 Java 클래스명과 통지형을 나타내는 배열을 돌려줍니다.
 void removeNotificationListener (NotificationListener  listener)
          이 MBean 로부터 청취자를 삭제합니다.
 

메소드의 상세

addNotificationListener

void addNotificationListener(NotificationListener  listener,
                             NotificationFilter  filter,
                             Object  handback)
                             throws IllegalArgumentException 
이 MBean 에 청취자를 추가합니다.

파라미터:
listener - 브로드 캐스터가 발행한 통지를 처리하는 청취자 객체
filter - 필터 객체. 필터가 null 의 경우, 통지 처리전에 필터는 적용되지 않는
handback - 통지의 발행시에 청취자에게 송신된다 불투명한 객체. Notification 브로드 캐스터 객체는, 이 객체를 사용할 수 없다. 이 객체는, 손보지 않는 상태로, 통지와 함께 청취자에게 돌려 보내지지 않으면 안 된다
예외:
IllegalArgumentException - 청취자 파라미터가 null 의 경우
관련 항목:
removeNotificationListener(javax.management.NotificationListener)

removeNotificationListener

void removeNotificationListener(NotificationListener  listener)
                                throws ListenerNotFoundException 
이 MBean 로부터 청취자를 삭제합니다. 청취자가 다른 핸드백 객체 또는 통지 필터에 등록되어 있는 경우, 이 청취자에게 대응하는 모든 엔트리가 삭제됩니다.

파라미터:
listener - 이전에 이 MBean 에 추가되었다 청취자
예외:
ListenerNotFoundException - 청취자가 MBean 에 등록되지 않은 경우
관련 항목:
addNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object) , NotificationEmitter.removeNotificationListener(javax.management.NotificationListener, javax.management.NotificationFilter, java.lang.Object)

getNotificationInfo

MBeanNotificationInfo [] getNotificationInfo()

이 MBean 가 송신할 가능성이 있는 각 통지에 대해, 그 통지의 Java 클래스명과 통지형을 나타내는 배열을 돌려줍니다.

이 배열에 기술되어 있지 않은 통지를 MBean 가 송신해도, 부정하지는 않습니다. 다만 일부의 MBean 서버 클라이언트는, 올바르게 기능하기 위해서, 작성되는 배열에 의존하는 경우가 있습니다.

반환값:
통지의 배열

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.