public abstract class ActivationGroup extends UnicastRemoteObject implements ActivationInstantiator
ActivationGroup负责创建“组激活的”对象的新实例时,通知其
ActivationMonitor:其对象是积极或消极的,或本集团成为活跃整个。
一个ActivationGroup是最初几种方法之一了:
ActivationGroupID创造一个ActivationDesc,或ActivationGroup.createGroup方法ActivationGroupDesc只有注册的第一个对象。只有一个ActivationGroup重现激活能。激活滋生,需要一个单独的虚拟机(作为一个孩子的过程,例如)为每个注册激活组和指导激活请求到相应的组。它是如何产生的具体实施VMS。激活组是通过创建ActivationGroup.createGroup静态方法。的createGroup方法有两个要求的组被创建:1)集团必须ActivationGroup一个具体子类,和2)的组必须有一个构造函数接受两个参数:
ActivationGroupID,和java.rmi.MarshalledObject)在创建的时候,ActivationGroup的默认实现将覆盖系统性能与性能要求时,其ActivationGroupDesc成立,将建立一SecurityManager作为默认的系统安全管理。如果你的应用需要特定的属性被设置在对象组中的活性,应用程序应该创建一个特殊的Properties对象包含这些属性,然后创建与Properties对象ActivationGroupDesc,使用ActivationGroup.createGroup在创建任何ActivationDescs(在默认ActivationGroupDesc创造)。如果你的应用需要一个安全经理SecurityManager以外使用,在activativationgroupdescriptor属性列表中你可以设置java.security.manager财产安全经理的你想安装的名字。
ActivationInstantiator,
ActivationGroupDesc,
ActivationGroupID,
Serialized Form
ref| Modifier | Constructor and Description |
|---|---|
protected |
ActivationGroup(ActivationGroupID groupID)
用给定的激活组标识符构造一个激活组。
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
activeObject(ActivationID id, MarshalledObject<? extends Remote> mobj)
这类保护方法是使
activeObject回调到集团监控必要。
|
abstract void |
activeObject(ActivationID id, Remote obj)
本集团的
activeObject方法被调用时,对象是出口(无论是
Activatable对象构造或显式调用
Activatable.exportObject。
|
static ActivationGroup |
createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation)
创建和设置当前虚拟机的激活组。
|
static ActivationGroupID |
currentGroupID()
返回当前激活组的标识符。
|
static ActivationSystem |
getSystem()
返回虚拟机的激活系统。
|
protected void |
inactiveGroup()
这类保护方法是使
inactiveGroup回调到集团监控必要。
|
boolean |
inactiveObject(ActivationID id)
本集团的
inactiveObject方法称为间接地通过电话向
Activatable.inactive方法。
|
static void |
setSystem(ActivationSystem system)
为虚拟机设置激活系统。
|
clone, exportObject, exportObject, exportObject, unexportObjectgetClientHost, getLog, setLogequals, getRef, hashCode, toString, toStubfinalize, getClass, notify, notifyAll, wait, wait, waitnewInstanceprotected ActivationGroup(ActivationGroupID groupID) throws RemoteException
java.rmi.server.UnicastRemoteObject。
groupID -组的标识符
RemoteException -如果这组不可出口
UnsupportedOperationException -当且仅当激活是不被实施的支持
public boolean inactiveObject(ActivationID id) throws ActivationException, UnknownObjectException, RemoteException
inactiveObject方法称为间接地通过电话向
Activatable.inactive方法。远程对象的实现必须调用方法时,对象的
inactive
Activatable停用(对象认为它不再是积极的)。如果对象不叫
Activatable.inactive当它停用,对象将不会自组保持较强的参考文献,它所创建的对象的垃圾收集。
本集团的inactiveObject方法unexports远程对象从RMI运行时,该对象可以不再接收RMI调用。一个对象只会导出,如果对象没有未决或执行调用。ActivationGroup的子类必须重写此方法,可以不导出对象。
从RMI运行时删除对象后,该集团必须通知其ActivationMonitor(通过监控的inactiveObject法),远程对象的当前不处于活动状态,将重新激活远程对象的激活在随后的激活请求。
此方法简单地通知该组的监视器,该对象处于非活动状态。这是向activationgroup具体子类实现unexporting对象的附加要求。
id -对象的激活标识符
UnknownObjectException如果对象是未知的(或许已经无效)
RemoteException如果电话通知班长失败
ActivationException如果组是无效的
public abstract void activeObject(ActivationID id, Remote obj) throws ActivationException, UnknownObjectException, RemoteException
activeObject方法被调用时,对象是出口(无论是
Activatable对象构造或显式调用
Activatable.exportObject。本集团必须通知其
ActivationMonitor,活动的对象(通过监控的
activeObject法)如果集团没有这样做。
id -对象的标识符
obj -远程对象的实现
UnknownObjectException如果对象没有注册
RemoteException如果电话通知班长失败
ActivationException如果组是无效的
public static ActivationGroup createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation) throws ActivationException
createGroup方法当
Activator启动,激活组的再创造进行来料
activate请求。一组首先必须与
ActivationSystem注册之前,可以通过这种方法。
由ActivationGroupDesc指定的组类必须是一个具体的子类ActivationGroup具有公共构造函数接受两个参数:该组的ActivationGroupID和包含组的初始化数据(从ActivationGroupDesc获得MarshalledObject。
如果在ActivationGroupDesc指定的组类名称null,那么这种方法表现得如组描述符包含默认激活组实现类的名字。
请注意,如果您的应用程序创建了自己的自定义激活组,必须为该组设置一个安全管理器。否则,在该组中无法激活对象。SecurityManager默认设置。
如果一个安全管理已经是中集集团的虚拟机,该方法首先调用安全管理器的checkSetFactory方法。这可能会导致一个SecurityException。如果你的应用需要设置不同的安全经理,你必须确保集团的ActivationGroupDesc赋予本集团建立一个新的安全管理器所需的权限规定的政策文件。(注:这将是必要的,如果你的组下载并设置一个安全管理器)。
后组的创建,ActivationSystem通知集团主动致电activeGroup方法返回该组的ActivationMonitor。应用程序不需要调用activeGroup独立以来它是照顾的方法。
一组被创建,随后调用的currentGroupID方法将返回的标识符的这组直到变得不活动组。
id -活化组的标识符
desc -活化组的描述符
incarnation -组的化身数(零组的最初创作)
ActivationException如果组已存在或如果在小组创造发生错误
SecurityException如果权限创建集团否认。(注:安全经理的
checkSetFactory方法的默认实现要求RuntimePermission”setfactory”)
UnsupportedOperationException -当且仅当激活是不被实施的支持
SecurityManager.checkSetFactory()
public static ActivationGroupID currentGroupID()
UnsupportedOperationException -当且仅当激活是不被实施的支持
public static void setSystem(ActivationSystem system) throws ActivationException
getSystem方法试图通过查找名为“java获取到
ActivationSystem参考。RMI。激活。activationsystem”激活的注册表。默认情况下,端口号用于查找激活系统是指由
ActivationSystem.SYSTEM_PORT。此端口可以通过设置属性
java.rmi.activation.port重写。
如果存在安全管理器,该方法首先调用安全管理器的checkSetFactory方法。这可能导致SecurityException。
system远程参考的
ActivationSystem
ActivationException如果激活系统已设置
SecurityException如果权限设置激活系统被拒绝。(注:安全经理的
checkSetFactory方法的默认实现要求RuntimePermission”setfactory”)
UnsupportedOperationException -当且仅当激活是不被实施的支持
getSystem(),
SecurityManager.checkSetFactory()
public static ActivationSystem getSystem() throws ActivationException
setSystem方法。如果激活系统没有设置通过
setSystem方法,然后
getSystem方法试图通过查找名为“java获取到
ActivationSystem参考。RMI。激活。activationsystem”激活的注册表。默认情况下,端口号用于查找激活系统是指由
ActivationSystem.SYSTEM_PORT。这个端口可以通过设置属性
java.rmi.activation.port重写。
ActivationException如果激活系统无法获得或是不受约束的(意味着它没有运行)
UnsupportedOperationException -当且仅当激活是不被实施的支持
setSystem(java.rmi.activation.ActivationSystem)
protected void activeObject(ActivationID id, MarshalledObject<? extends Remote> mobj) throws ActivationException, UnknownObjectException, RemoteException
activeObject回调到集团监控必要。简单的调用转发到这个组的
ActivationMonitor。
id -对象的标识符
mobj -集结对象包含远程对象的存根
UnknownObjectException如果对象没有注册
RemoteException如果电话通知班长失败
ActivationException如果激活错误发生
protected void inactiveGroup()
throws UnknownGroupException,
RemoteException
inactiveGroup回调到集团监控必要。简单的调用转发到这个组的
ActivationMonitor。此外,当前的虚拟机组将被设置为空。
UnknownGroupException如果集团没有注册
RemoteException如果电话通知班长失败
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.