JavaTM Platform
Standard Ed. 6

java.rmi.activation
�� ActivationGroup

java.lang.Object
  �̳��� java.rmi.server.RemoteObject
      �̳��� java.rmi.server.RemoteServer
          �̳��� java.rmi.server.UnicastRemoteObject
              �̳��� java.rmi.activation.ActivationGroup
������ʵ�ֵĽӿڣ�
Serializable, ActivationInstantiator, Remote

public abstract class ActivationGroup
extends UnicastRemoteObject
implements ActivationInstantiator

ActivationGroup ���𴴽�����“�ɼ���”�������ʵ�������������֪ͨ�� ActivationMonitor�����Ķ����ɻ�Ļ��߲���ģ������������ɲ���ġ�

ActivationGroup ͨ�����·�ʽ֮һ����ʼ ������

ֻ�м��������ؽ� һ�� ActivationGroup��������������ҪΪÿ����ע��ļ���������һ�������� VM�����磬��Ϊһ���ӽ��̣������ҽ������������ʵ����顣����������� VM ���ض�ʵ�֡�һ��������ͨ�� ActivationGroup.createGroup ��̬����������createGroup �����ڴ����鷽������������1) ������� ActivationGroup ��һ���������࣬�Լ� 2) �������д����������Ĺ��췽����

�鱻������ActivationGroup ��Ĭ��ʵ�ֽ��ڴ��� ActivationGroupDesc ʱ�������������дϵͳ���ԣ����ҽ�����һ�� java.rmi.RMISecurityManager ��ΪĬ�ϵ�ϵͳ��ȫ�����������Ӧ�ó�����Ҫ���������б�����ʱ�����ض������ԣ���Ӧ�ó���Ӧ������һ������İ�����Щ���Ե� Properties ����Ȼ��ʹ�ô� Properties ���󴴽�һ�� ActivationGroupDesc�������ڴ����κ� ActivationDesc ֮ǰʹ�� ActivationGroup.createGroup����Ĭ�ϵ� ActivationGroupDesc ������֮ǰ�������Ӧ�ó�����Ҫʹ�ð�ȫ������������ java.rmi.RMISecurityManager������ ActivativationGroupDescriptor �����б��п��Խ� java.security.manager ��������Ϊ��Ҫ��װ�İ�ȫ�����������ơ�

�����°汾��ʼ��
1.2
������
ActivationInstantiator, ActivationGroupDesc, ActivationGroupID, �������

�ֶ�ժҪ
 
���� java.rmi.server.RemoteObject �̳е��ֶ�
ref
 
���췽��ժҪ
protected ActivationGroup(ActivationGroupID groupID)
          �ø����ļ������ʶ������һ�������顣
 
����ժҪ
protected  void activeObject(ActivationID id, MarshalledObject<? extends Remote> mobj)
          �������Ҫ���ж���������� activeObject �ص������ protected �����DZ�Ҫ�ġ�
abstract  void activeObject(ActivationID id, Remote obj)
          �����󱻵���ʱ��ͨ�� Activatable ����Ĺ������ͨ����ʽ���� Activatable.exportObject������� activeObject ���������á�
static ActivationGroup createGroup(ActivationGroupID id, ActivationGroupDesc desc, long incarnation)
          Ϊ��ǰ VM ���������ü����顣
static ActivationGroupID currentGroupID()
          ���ص�ǰ������ı�ʶ����
static ActivationSystem getSystem()
          ���ظ� VM �ļ���ϵͳ��
protected  void inactiveGroup()
          �������Ҫ���ж���������� inactiveGroup �ص������ protected �����DZ�Ҫ�ġ�
 boolean inactiveObject(ActivationID id)
          ͨ������ Activatable.inactive ������ӵص������ inactiveObject ������
static void setSystem(ActivationSystem system)
          ���ø� VM �ļ���ϵͳ��
 
���� java.rmi.server.UnicastRemoteObject �̳еķ���
clone, exportObject, exportObject, exportObject, unexportObject
 
���� java.rmi.server.RemoteServer �̳еķ���
getClientHost, getLog, setLog
 
���� java.rmi.server.RemoteObject �̳еķ���
equals, getRef, hashCode, toString, toStub
 
���� java.lang.Object �̳еķ���
finalize, getClass, notify, notifyAll, wait, wait, wait
 
�ӽӿ� java.rmi.activation.ActivationInstantiator �̳еķ���
newInstance
 

���췽����ϸ��Ϣ

ActivationGroup

protected ActivationGroup(ActivationGroupID groupID)
                   throws RemoteException
�ø����ļ������ʶ������һ�������顣���齫��Ϊһ�� java.rmi.server.UnicastRemoteObject ��������

������
groupID - ���ʶ��
�׳���
RemoteException - ��Ҫ�鲻�ܱ�����
�����°汾��ʼ��
1.2
������ϸ��Ϣ

inactiveObject

public boolean inactiveObject(ActivationID id)
                       throws ActivationException,
                              UnknownObjectException,
                              RemoteException
ͨ������ Activatable.inactive ������ӵص������ inactiveObject ���������ö��󲻻��������Ϊ�����ٻ��ʱ��Զ�̶���ʵ�ֱ������ Activatable �� inactive �����������󲻻ʱ���������δ���� Activatable.inactive����ö�����Զ�����������գ���Ϊ�鱣�ֶ��������Ķ����ǿ���á�

��� inactiveObject ������ RMI ����ʱȡ������Զ�̶�����˸ö����޷��ٽ��մ���� RMI ���á��������û���κι������ִ�еĵ��ã���ö��󽫽�����ȡ��������ActivationGroup �����������д�˷�������ȡ�������ö���

�� RMI ����ʱ�Ƴ��ö���֮�������֪ͨ�� ActivationMonitor��ͨ�� inactiveObject ����������Զ�̶���ǰ���ǻ�ģ����Զ�̶����ں��������������ɼ��������¼��

�˷����򵥵�֪ͨ��ļ��������ö����Dz���ġ��� ActivationGroup �ľ���������ʵ��ȡ�������ö���ĸ�������

������
id - ����ļ����ʶ��
���أ�
����ö��󱻳ɹ���ȡ������򷵻� true�����򷵻� false��
�׳���
UnknownObjectException - �������δ֪�������Ѿ��Dz���ģ�
RemoteException - �������֪ͨ������ʧ��
ActivationException - ������Dz����
�����°汾��ʼ��
1.2

activeObject

public abstract void activeObject(ActivationID id,
                                  Remote obj)
                           throws ActivationException,
                                  UnknownObjectException,
                                  RemoteException
�����󱻵���ʱ��ͨ�� Activatable ����Ĺ������ͨ����ʽ���� Activatable.exportObject������� activeObject ���������á������֪ͨ�� ActivationMonitor �����Dz���ģ�ͨ���������� activeObject ��������������黹û����ô���Ļ���

������
id - ����ı�ʶ��
obj - Զ�̶���ʵ��
�׳���
UnknownObjectException - �������δע��
RemoteException - �������֪ͨ������ʧ��
ActivationException - ������Dz����
�����°汾��ʼ��
1.2

createGroup

public static ActivationGroup createGroup(ActivationGroupID id,
                                          ActivationGroupDesc desc,
                                          long incarnation)
                                   throws ActivationException
Ϊ��ǰ VM ���������ü����顣������ǰ��δ���ü�����ʱ�����ü����顣�� Activator ��ʼ����������ؽ���ִ�д���� activate ����ʱ��������ʹ�� createGroup ���������á��������ͨ���˷�������֮ǰ�������������ͨ�� ActivationSystem ע�ᡣ

�� ActivationGroupDesc ָ������������� ActivationGroup �ľ������࣬���Ҿ���һ�������Ĵ����������Ĺ��췽������� ActivationGroupID �Ͱ�����ij�ʼ�����ݵ� MarshalledObject���� ActivationGroupDesc ��ã���

��� ActivationGroupDesc ��ָ����������Ϊ null����˷�������������������Ĭ�ϼ�����ʵ���������һ��ִ�С�

ע�⣬���Ӧ�ó��򴴽����Լ����Զ��弤���飬�����Ϊ�������ð�ȫ�����������򣬸����еĶ����ܱ����Ĭ������Ϊ java.rmi.RMISecurityManager��

����ڸ���� VM ���Ѿ����ð�ȫ���������˷������ȵ��øð�ȫ�������� checkSetFactory ����������ܻᵼ���׳� SecurityException�����Ӧ�ó�����Ҫ���ò�ͬ�İ�ȫ�������������ȷ������� ActivationGroupDesc ��ָ���IJ����ļ���������Ҫ��Ȩ��������һ���µİ�ȫ����������ע����������ز�����һ����ȫ���������⽫�DZ�Ҫ�ģ���

���鱻����֮��ͨ������ activeGroup ����֪ͨ ActivationSystem �����ǻ�ģ����ظ���� ActivationMonitor��Ӧ�ó�������������� activeGroup����Ϊ��ͨ���˷�����ά����

һ���鱻�������� currentGroupID �����ĺ������ý����ش���ı�ʶ����ֱ�����Ϊ����ġ�

������
id - ������ı�ʶ��
desc - �������������
incarnation - ��Ĵ��ţ������ʼ������ʱΪ�㣩
���أ�
��Ը� VM �ļ�����
�׳���
ActivationException - ������Ѿ����ڻ���������鴴�������з�������
SecurityException - ����������Ȩ�ޱ��ܾ�����ע����ȫ������ checkSetFactory ������Ĭ��ʵ����Ҫ RuntimePermission �� "setFactory"��
�����°汾��ʼ��
1.2
������
SecurityManager.checkSetFactory()

currentGroupID

public static ActivationGroupID currentGroupID()
���ص�ǰ������ı�ʶ��������� VM ��ǰû���κ����ǻ�ģ��򷵻� null��

���أ�
������ı�ʶ��
�����°汾��ʼ��
1.2

setSystem

public static void setSystem(ActivationSystem system)
                      throws ActivationException
���ø� VM �ļ���ϵͳ��������ǰû�����ǻ�ģ��ſ������ü���ϵͳ���������ϵͳδͨ���˵��������ã��� getSystem ��������ͨ���� Activator ע����в������� "java.rmi.activation.ActivationSystem" ����ȡ�� ActivationSystem �����á�Ĭ������£����ڲ��Ҹü���ϵͳ�Ķ˿ں��� ActivationSystem.SYSTEM_PORT ���塣�˶˿ڿ�ͨ���������� java.rmi.activation.port ������д��

������ڰ�ȫ����������˷������ȵ��ð�ȫ�������� checkSetFactory ����������ܻᵼ���׳� SecurityException �쳣��

������
system - �� ActivationSystem ��Զ������
�׳���
ActivationException - ����Ѿ����ü���ϵͳ
SecurityException - ������ü���ϵͳ��Ȩ�ޱ��ܾ�����ע����ȫ������ checkSetFactory ������Ĭ��ʵ����Ҫ RuntimePermission �� "setFactory"��
�����°汾��ʼ��
1.2
������
getSystem(), SecurityManager.checkSetFactory()

getSystem

public static ActivationSystem getSystem()
                                  throws ActivationException
���ظ� VM �ļ���ϵͳ������ϵͳ����ͨ�� setSystem �������á��������ϵͳδͨ�� setSystem �������ã��� getSystem ��������ͨ���� Activator ע����в������� "java.rmi.activation.ActivationSystem" ����ȡ�� ActivationSystem �����á�Ĭ������£����ڲ��Ҹü���ϵͳ�Ķ˿ں��� ActivationSystem.SYSTEM_PORT ���塣�˶˿ڿ�ͨ���������� java.rmi.activation.port ������д��

���أ�
�� VM/��ļ���ϵͳ
�׳���
ActivationException - �������ϵͳ�޷���û���δ�󶨣���ζ����û�����У�
�����°汾��ʼ��
1.2
������
setSystem(java.rmi.activation.ActivationSystem)

activeObject

protected void activeObject(ActivationID id,
                            MarshalledObject<? extends Remote> mobj)
                     throws ActivationException,
                            UnknownObjectException,
                            RemoteException
�������Ҫ���ж���������� activeObject �ص������ protected �����DZ�Ҫ�ġ��˵��ü򵥵�ת������� ActivationMonitor��

������
id - ����ı�ʶ��
mobj - ����Զ�̶���� stub �ı������
�׳���
UnknownObjectException - �������δע��
RemoteException - �������֪ͨ������ʧ��
ActivationException - ��������������
�����°汾��ʼ��
1.2

inactiveGroup

protected void inactiveGroup()
                      throws UnknownGroupException,
                             RemoteException
�������Ҫ���ж���������� inactiveGroup �ص������ protected �����DZ�Ҫ�ġ��˵��ü򵥵�ת������� ActivationMonitor��ͬʱ���� VM �ĵ�ǰ�鱻����Ϊ null��

�׳���
UnknownGroupException - �����δע��
RemoteException - �������֪ͨ������ʧ��
�����°汾��ʼ��
1.2

JavaTM Platform
Standard Ed. 6

�ύ��������
�йظ���� API �ο����ϺͿ�����Ա�ĵ�������� Java SE ������Ա�ĵ������ĵ���������ϸ�ġ����򿪷���Ա���������Լ�������������ﶨ�塢ʹ�ü��ɺ͹�������ʾ����

��Ȩ���� 2007 Sun Microsystems, Inc. ��������Ȩ���� ����������֤��������������ĵ����·ַ�������