java.lang.Object javax.management.NotificationBroadcasterSupport javax.management.remote.JMXConnectorServer
public abstract class JMXConnectorServer
每个连接器服务器的超类。连接器服务器连接到 MBean 服务器。它侦听客户端连接请求并为每个请求创建连接。
连接器服务器或者通过在该 MBean 服务器上注册该连接器服务器,或者通过将 MBean 服务器传给其构造方法来与 MBean 服务器关联。
连接器服务器在创建时为非活动的。只有在调用了 start
方法后,它才开始侦听客户端连接。当调用了 stop
方法,或者将连接器服务器从其 MBean 服务器注销后,连接器服务器停止侦听客户端连接。
停止连接器服务器并不会将它从其 MBean 服务器注销。连接器服务器一旦停止就无法重新启动。
客户端连接每次建立或断开都将发出一个类 JMXConnectionNotification
的通知。
字段摘要 | |
---|---|
static String |
AUTHENTICATOR 为连接器服务器指定经验证的属性名称。 |
构造方法摘要 | |
---|---|
JMXConnectorServer() 构造一个将注册为连接到 MBean 服务器的 MBean 的连接器服务器。 |
|
JMXConnectorServer(MBeanServer mbeanServer) 构造一个连接到给定 MBean 服务器的连接器服务器。 |
方法摘要 | |
---|---|
protected void |
connectionClosed(String connectionId, String message, Object userData) 正常关闭客户端连接时由子类调用。 |
protected void |
connectionFailed(String connectionId, String message, Object userData) 客户端连接失败时由子类调用。 |
protected void |
connectionOpened(String connectionId, String message, Object userData) 打开新的客户端连接时由子类调用。 |
String[] |
getConnectionIds() 当前打开的到此连接器服务器的连接 ID 列表。 |
MBeanServer |
getMBeanServer() 返回该连接器服务器连接到的 MBean 服务器。 |
MBeanNotificationInfo[] |
getNotificationInfo() 返回一个指示由该 MBean 发送的通知的数组。 |
void |
postDeregister() 允许 MBean 在已从 MBean 服务器注销之后执行所需要的任何操作。 |
void |
postRegister(Boolean registrationDone) 允许 MBean 在被注册到 MBean 服务器或注销失败后执行任何所需要的操作。 |
void |
preDeregister() 当此连接器服务器从 MBean 服务器上注销时,由该 MBean 服务器调用此方法。 |
ObjectName |
preRegister(MBeanServer mbs, ObjectName name) 当此连接器服务器在 MBean 服务器上注册时,由该 MBean 服务器调用此方法。 |
void |
setMBeanServerForwarder(MBeanServerForwarder mbsf) 添加一个截取对 MBean 服务器请求的对象,该请求是通过此连接器服务器到达的。 |
JMXConnector |
toJMXConnector(Map<String,?> env) 返回此连接器服务器的客户端 stub。 |
从类 javax.management.NotificationBroadcasterSupport 继承的方法 |
---|
addNotificationListener, handleNotification, removeNotificationListener, removeNotificationListener, sendNotification |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从接口 javax.management.remote.JMXConnectorServerMBean 继承的方法 |
---|
getAddress, getAttributes, isActive, start, stop |
从接口 javax.management.remote.JMXAddressable 继承的方法 |
---|
getAddress |
字段详细信息 |
---|
public static final String AUTHENTICATOR
为连接器服务器指定经验证的属性名称。此属性关联的值(如果有)必须是一个实现 JMXAuthenticator
接口的对象。
构造方法详细信息 |
---|
public JMXConnectorServer()
构造一个将注册为连接到 MBean 服务器的 MBean 的连接器服务器。此构造方法通常由 createMBean
方法之一在创建(在 MBean 服务器内)实现远程可用的连接器服务器时调用。
public JMXConnectorServer(MBeanServer mbeanServer)
构造一个连接到给定 MBean 服务器的连接器服务器。使用这样的方法创建的连接器服务器可注册到一个不同的 MBean 服务器上。
mbeanServer
- 该连接器服务器连接到的 MBean 服务器。如果该连接器服务器将通过注册的方式连接到 MBean 服务器,则为 Null。
方法详细信息 |
---|
public MBeanServer getMBeanServer()
返回该连接器服务器连接到的 MBean 服务器。
public void setMBeanServerForwarder(MBeanServerForwarder mbsf)
JMXConnectorServerMBean
复制的描述
添加一个截取对 MBean 服务器请求的对象,该请求是通过此连接器服务器到达的。此对象将作为任何由此连接器服务器创建的新连接的 MBeanServer
提供。现有连接不受影响。
如果此连接器服务器已与一个 MBeanServer
对象关联,则将该对象提供给 mbsf.setMBeanServer
。如果这样做生成异常,则该方法抛出相同的异常,没有任何其他作用。
如果此连接器尚未与一个 MBeanServer
对象关联,或者如果刚才提到的 mbsf.setMBeanServer
调用成功,则 mbsf
成为该连接器服务器的 MBeanServer
。
JMXConnectorServerMBean
中的
setMBeanServerForwarder
mbsf
- 新的
MBeanServerForwarder
。
public String[] getConnectionIds()
JMXConnectorServerMBean
复制的描述
当前打开的到此连接器服务器的连接 ID 列表。
JMXConnectorServerMBean
中的
getConnectionIds
public JMXConnector toJMXConnector(Map<String,?> env) throws IOException
返回此连接器服务器的客户端 stub。客户端 stub 为一个可序列化的对象,其 connect
方法可用于建立一个到此连接器服务器的新连接。
给定的连接器不必支持生成客户端 stub。但是,由 JMX Remote API 指定的连接器必须支持生成客户端 stub(JMXMP Connector 和 RMI Connector)。
此方法的默认实现使用 JMXConnectorServerMBean.getAddress()
和 JMXConnectorFactory
生成 stub,其代码等效于:
JMXServiceURL addr =getAddress()
; returnJMXConnectorFactory.newJMXConnector(addr, env)
;
此代码不适用的连接器服务器必须重写此方法,这样或者实现适当的逻辑,或者抛出 UnsupportedOperationException
。
JMXConnectorServerMBean
中的
toJMXConnector
env
- 客户端连接参数,与提供给
JMXConnector.connect(Map)
的参数具有相同的类型。可以为 null,它等效于一个空映射。
UnsupportedOperationException
- 如果此连接器服务器不支持生成客户端 stub。
IllegalStateException
- 如果 JMXConnectorServer 未启动(请参阅
JMXConnectorServerMBean.isActive()
)。
IOException
- 如果存在通信问题而导致无法创建 stub。
public MBeanNotificationInfo[] getNotificationInfo()
返回一个指示由该 MBean 发送的通知的数组。JMXConnectorServer
中的实现返回带一个元素的数组,这指示它可以发出在此类中定义的类型的类 JMXConnectionNotification
的通知。能够发出其他通知的子类应返回一个包含该元素和对其他通知的描述的数组。
NotificationBroadcaster
中的
getNotificationInfo
NotificationBroadcasterSupport
中的
getNotificationInfo
protected void connectionOpened(String connectionId, String message, Object userData)
打开新的客户端连接时由子类调用。将由 getConnectionIds()
返回的 connectionId
添加到列表中,然后发出一个类型为 JMXConnectionNotification.OPENED
的 JMXConnectionNotification
。
connectionId
- 新连接的 ID。它必须与任何由此连接器服务器先前打开的连接的 ID 不一样。
message
- 发出的
JMXConnectionNotification
的消息。可以为 null。请参阅
Notification.getMessage()
。
userData
- 发出的
JMXConnectionNotification
的
userData
。可以为 null。请参阅
Notification.getUserData()
。
NullPointerException
- 如果
connectionId
为 null。
protected void connectionClosed(String connectionId, String message, Object userData)
正常关闭客户端连接时由子类调用。从列表中移除由 getConnectionIds()
返回的 connectionId
,然后发出一个类型为 JMXConnectionNotification.CLOSED
的 JMXConnectionNotification
。
connectionId
- 已关闭连接的 ID。
message
- 发出的
JMXConnectionNotification
的消息。可以为 null。请参阅
Notification.getMessage()
。
userData
- 发出的
JMXConnectionNotification
的
userData
。可以为 null。请参阅
Notification.getUserData()
。
NullPointerException
- 如果
connectionId
为 null。
protected void connectionFailed(String connectionId, String message, Object userData)
客户端连接失败时由子类调用。从列表中移除由 getConnectionIds()
返回的 connectionId
,然后发出一个类型为 JMXConnectionNotification.FAILED
的 JMXConnectionNotification
。
connectionId
- 失败连接的 ID。
message
- 发出的
JMXConnectionNotification
的消息。可以为 null。请参阅
Notification.getMessage()
。
userData
- 发出的
JMXConnectionNotification
的
userData
。可以为 null。请参阅
Notification.getUserData()
。
NullPointerException
- 如果
connectionId
为 null。
public ObjectName preRegister(MBeanServer mbs, ObjectName name)
当此连接器服务器在 MBean 服务器上注册时,由该 MBean 服务器调用此方法。此连接器服务器连接到此 MBean 服务器上且其 getMBeanServer()
方法将返回 mbs
。
如果该连接器服务器已连接到 MBean 服务器,则该方法没有任何作用。它所连接到的 MBean 服务器不一定就是所注册的 MBean 服务器。
MBeanRegistration
中的
preRegister
mbs
- 该连接器服务器注册所在的 MBean 服务器。
name
- MBean 的对象名。
NullPointerException
- 如果
mbs
或
name
为 null。
public void postRegister(Boolean registrationDone)
MBeanRegistration
复制的描述
MBeanRegistration
中的
postRegister
registrationDone
- 指示该 MBean 是否已在 MBean 服务器中成功注册。false 值意味着注册阶段已失败。
public void preDeregister() throws Exception
当此连接器服务器从 MBean 服务器上注销时,由该 MBean 服务器调用此方法。如果该连接器服务器以注册的方式连接到该 MBean 服务器,并且如果该连接器服务器仍为活动状态,则注销它将调用 stop
方法。如果 stop
方法抛出一个异常,则注销尝试将失败。建议在注销 MBean 之前显式调用 stop
方法。
MBeanRegistration
中的
preDeregister
IOException
- 如果异常由
stop
方法抛出。
Exception
- MBean 服务器会捕捉此异常并以
MBeanRegistrationException
的形式重新抛出。
public void postDeregister()
MBeanRegistration
复制的描述
MBeanRegistration
中的
postDeregister