Module java.rmi
Package java.rmi.activation

## Interface ActivationSystem

- All Superinterfaces:
    `Remote`

      public interface ActivationSystem
      extends Remote

  The `ActivationSystem` provides a means for registering groups and "activatable" objects to be activated within those groups. The `ActivationSystem` works closely with the `Activator`, which activates objects registered via the `ActivationSystem`, and the `ActivationMonitor`, which obtains information about active and inactive objects, and inactive groups.
  Since:
    1.2
  See Also:
    `Activator`, `ActivationMonitor`

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static int` | `SYSTEM_PORT` | The port to lookup the activation system.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `ActivationMonitor` | `activeGroup​(ActivationGroupID id, ActivationInstantiator group, long incarnation)` | Callback to inform activation system that group is now active.
    `ActivationDesc` | `getActivationDesc​(ActivationID id)` | Returns the activation descriptor, for the object with the activation identifier, `id`.
    `ActivationGroupDesc` | `getActivationGroupDesc​(ActivationGroupID id)` | Returns the activation group descriptor, for the group with the activation group identifier, `id`.
    `ActivationGroupID` | `registerGroup​(ActivationGroupDesc desc)` | Register the activation group.
    `ActivationID` | `registerObject​(ActivationDesc desc)` | The `registerObject` method is used to register an activation descriptor, `desc`, and obtain an activation identifier for a activatable remote object.
    `ActivationDesc` | `setActivationDesc​(ActivationID id, ActivationDesc desc)` | Set the activation descriptor, `desc` for the object with the activation identifier, `id`.
    `ActivationGroupDesc` | `setActivationGroupDesc​(ActivationGroupID id, ActivationGroupDesc desc)` | Set the activation group descriptor, `desc` for the object with the activation group identifier, `id`.
    `void` | `shutdown()` | Shutdown the activation system.
    `void` | `unregisterGroup​(ActivationGroupID id)` | Remove the activation group.
    `void` | `unregisterObject​(ActivationID id)` | Remove the activation id and associated descriptor previously registered with the `ActivationSystem`; the object can no longer be activated via the object's activation id.

- - ### Field Detail

    - #### SYSTEM_PORT

          static final int SYSTEM_PORT

      The port to lookup the activation system.
      See Also:
        Constant Field Values

  - ### Method Detail

    - #### registerObject

          ActivationID registerObject​(ActivationDesc desc)
                               throws ActivationException,
                                      UnknownGroupException,
                                      RemoteException

      The `registerObject` method is used to register an activation descriptor, `desc`, and obtain an activation identifier for a activatable remote object. The `ActivationSystem` creates an `ActivationID` (a activation identifier) for the object specified by the descriptor, `desc`, and records, in stable storage, the activation descriptor and its associated identifier for later use. When the `Activator` receives an `activate` request for a specific identifier, it looks up the activation descriptor (registered previously) for the specified identifier and uses that information to activate the object.
      Parameters:
        `desc` - the object's activation descriptor
      Returns:
        the activation id that can be used to activate the object
      Throws:
        `ActivationException` - if registration fails (e.g., database update failure, etc).
        `UnknownGroupException` - if group referred to in `desc` is not registered with this system
        `RemoteException` - if remote call fails
      Since:
        1.2

    - #### unregisterObject

          void unregisterObject​(ActivationID id)
                         throws ActivationException,
                                UnknownObjectException,
                                RemoteException

      Remove the activation id and associated descriptor previously registered with the `ActivationSystem`; the object can no longer be activated via the object's activation id.
      Parameters:
        `id` - the object's activation id (from previous registration)
      Throws:
        `ActivationException` - if unregister fails (e.g., database update failure, etc).
        `UnknownObjectException` - if object is unknown (not registered)
        `RemoteException` - if remote call fails
      Since:
        1.2

    - #### registerGroup

          ActivationGroupID registerGroup​(ActivationGroupDesc desc)
                                   throws ActivationException,
                                          RemoteException

      Register the activation group. An activation group must be registered with the `ActivationSystem` before objects can be registered within that group.
      Parameters:
        `desc` - the group's descriptor
      Returns:
        an identifier for the group
      Throws:
        `ActivationException` - if group registration fails
        `RemoteException` - if remote call fails
      Since:
        1.2

    - #### activeGroup

          ActivationMonitor activeGroup​(ActivationGroupID id,
                                        ActivationInstantiator group,
                                        long incarnation)
                                 throws UnknownGroupException,
                                        ActivationException,
                                        RemoteException

      Callback to inform activation system that group is now active. This call is made internally by the `ActivationGroup.createGroup` method to inform the `ActivationSystem` that the group is now active.
      Parameters:
        `id` - the activation group's identifier
        `group` - the group's instantiator
        `incarnation` - the group's incarnation number
      Returns:
        monitor for activation group
      Throws:
        `UnknownGroupException` - if group is not registered
        `ActivationException` - if a group for the specified `id` is already active and that group is not equal to the specified `group` or that group has a different `incarnation` than the specified `group`
        `RemoteException` - if remote call fails
      Since:
        1.2

    - #### unregisterGroup

          void unregisterGroup​(ActivationGroupID id)
                        throws ActivationException,
                               UnknownGroupException,
                               RemoteException

      Remove the activation group. An activation group makes this call back to inform the activator that the group should be removed (destroyed). If this call completes successfully, objects can no longer be registered or activated within the group. All information of the group and its associated objects is removed from the system.
      Parameters:
        `id` - the activation group's identifier
      Throws:
        `ActivationException` - if unregister fails (e.g., database update failure, etc).
        `UnknownGroupException` - if group is not registered
        `RemoteException` - if remote call fails
      Since:
        1.2

    - #### shutdown

          void shutdown()
                 throws RemoteException

      Shutdown the activation system. Destroys all groups spawned by the activation daemon and exits the activation daemon.
      Throws:
        `RemoteException` - if failed to contact/shutdown the activation daemon
      Since:
        1.2

    - #### setActivationDesc

          ActivationDesc setActivationDesc​(ActivationID id,
                                           ActivationDesc desc)
                                    throws ActivationException,
                                           UnknownObjectException,
                                           UnknownGroupException,
                                           RemoteException

      Set the activation descriptor, `desc` for the object with the activation identifier, `id`. The change will take effect upon subsequent activation of the object.
      Parameters:
        `id` - the activation identifier for the activatable object
        `desc` - the activation descriptor for the activatable object
      Returns:
        the previous value of the activation descriptor
      Throws:
        `UnknownGroupException` - the group associated with `desc` is not a registered group
        `UnknownObjectException` - the activation `id` is not registered
        `ActivationException` - for general failure (e.g., unable to update log)
        `RemoteException` - if remote call fails
      Since:
        1.2
      See Also:
        `getActivationDesc(java.rmi.activation.ActivationID)`

    - #### setActivationGroupDesc

          ActivationGroupDesc setActivationGroupDesc​(ActivationGroupID id,
                                                     ActivationGroupDesc desc)
                                              throws ActivationException,
                                                     UnknownGroupException,
                                                     RemoteException

      Set the activation group descriptor, `desc` for the object with the activation group identifier, `id`. The change will take effect upon subsequent activation of the group.
      Parameters:
        `id` - the activation group identifier for the activation group
        `desc` - the activation group descriptor for the activation group
      Returns:
        the previous value of the activation group descriptor
      Throws:
        `UnknownGroupException` - the group associated with `id` is not a registered group
        `ActivationException` - for general failure (e.g., unable to update log)
        `RemoteException` - if remote call fails
      Since:
        1.2
      See Also:
        `getActivationGroupDesc(java.rmi.activation.ActivationGroupID)`

    - #### getActivationDesc

          ActivationDesc getActivationDesc​(ActivationID id)
                                    throws ActivationException,
                                           UnknownObjectException,
                                           RemoteException

      Returns the activation descriptor, for the object with the activation identifier, `id`.
      Parameters:
        `id` - the activation identifier for the activatable object
      Returns:
        the activation descriptor
      Throws:
        `UnknownObjectException` - if `id` is not registered
        `ActivationException` - for general failure
        `RemoteException` - if remote call fails
      Since:
        1.2
      See Also:
        `setActivationDesc(java.rmi.activation.ActivationID, java.rmi.activation.ActivationDesc)`

    - #### getActivationGroupDesc

          ActivationGroupDesc getActivationGroupDesc​(ActivationGroupID id)
                                              throws ActivationException,
                                                     UnknownGroupException,
                                                     RemoteException

      Returns the activation group descriptor, for the group with the activation group identifier, `id`.
      Parameters:
        `id` - the activation group identifier for the group
      Returns:
        the activation group descriptor
      Throws:
        `UnknownGroupException` - if `id` is not registered
        `ActivationException` - for general failure
        `RemoteException` - if remote call fails
      Since:
        1.2
      See Also:
        `setActivationGroupDesc(java.rmi.activation.ActivationGroupID, java.rmi.activation.ActivationGroupDesc)`