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
在创建任何ActivationDesc
s(在默认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, unexportObject
getClientHost, getLog, setLog
equals, getRef, hashCode, toString, toStub
finalize, getClass, notify, notifyAll, wait, wait, wait
newInstance
protected 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.