|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface NotificationBroadcaster
Notification 를 발행하는 MBean 가 구현하고 있는 인터페이스. 이 인터페이스에 의해, 청취자를 통지 청취자로서 MBean 에 등록할 수 있습니다.
MBean 는, 통지의 발행시에,addNotificationListener
를 사용해 추가되어 한편 removeNotificationListener
를 사용해 삭제되어 있지 않은 각 청취자를 고려에 넣습니다. 청취자에 대해서 필터가 제공되어 그 필터의 isNotificationEnabled
메소드가 false 를 돌려주는 경우, 그 청취자는 무시됩니다. 그 이외의 경우, 통지, 및 addNotificationListener
에 제공된 핸드백 객체를 사용해, 청취자의 handleNotification
메소드가 불려 갑니다.
동일한 청취자가 여러 차례 추가되는 경우, 추가될 때마다 고려됩니다. 이것은, 1 살의 청취자를 다른 필터나 핸드백 객체를 사용해 추가하는 경우에, 자주 도움이 됩니다.
이 인터페이스의 구현은, 필터나 청취자의 메소드가 불려 가는 thread에 의해 다른 일이 있습니다.
필터 또는 청취자의 메소드 호출에 의해 Exception
가 throw 되는 경우, 다른 청취자의 호출이 그 예외에 의해 방해할 수 없게 할 필요가 있습니다. 다만, 메소드 호출에 의해 Error
가 throw 되는 경우는, 그 시점에서 통지의 처리를 정지하는 것이 추천 되고 있습니다. 또,Error
를 통지의 송신 측에 보내는 것이 가능하면, 그렇게 해 주세요.
새로운 코드는,NotificationEmitter
인터페이스를 사용할 필요가 있습니다.
이 인터페이스 및 NotificationEmitter
의 구현에서는, 동기를 주의 깊게 실시할 필요가 있습니다. 특히, 구현이 청취자의 호출시에 락을 보관 유지하는 것은, 좋은 방법이 아닙니다. 통지의 발송중에 청취자의 리스트가 변경될 가능성에 대처하는 좋은 방법은, 이 리스트로 CopyOnWriteArrayList
를 사용하는 것입니다.
메소드의 개요 | |
---|---|
void |
addNotificationListener (NotificationListener listener,
NotificationFilter filter,
Object handback)
이 MBean 에 청취자를 추가합니다. |
MBeanNotificationInfo [] |
getNotificationInfo ()
이 MBean 가 송신할 가능성이 있는 각 통지에 대해, 그 통지의 Java 클래스명과 통지형을 나타내는 배열을 돌려줍니다. |
void |
removeNotificationListener (NotificationListener listener)
이 MBean 로부터 청취자를 삭제합니다. |
메소드의 상세 |
---|
void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback) throws IllegalArgumentException
listener
- 브로드 캐스터가 발행한 통지를
처리하는 청취자 객체filter
- 필터 객체. 필터가 null 의 경우,
통지 처리전에 필터는 적용되지 않는handback
- 통지의 발행시에 청취자에게 송신된다
불투명한 객체. Notification 브로드 캐스터 객체는,
이 객체를 사용할 수 없다. 이 객체는, 손보지 않는 상태로,
통지와 함께 청취자에게 돌려 보내지지 않으면 안 된다
IllegalArgumentException
- 청취자 파라미터가 null 의 경우removeNotificationListener(javax.management.NotificationListener)
void removeNotificationListener(NotificationListener listener) throws ListenerNotFoundException
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)
MBeanNotificationInfo [] getNotificationInfo()
이 MBean 가 송신할 가능성이 있는 각 통지에 대해, 그 통지의 Java 클래스명과 통지형을 나타내는 배열을 돌려줍니다.
이 배열에 기술되어 있지 않은 통지를 MBean 가 송신해도, 부정하지는 않습니다. 다만 일부의 MBean 서버 클라이언트는, 올바르게 기능하기 위해서, 작성되는 배열에 의존하는 경우가 있습니다.
|
JavaTM Platform Standard Ed. 6 |
|||||||||
앞의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요: 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.