Interface InvocationService

  • All Superinterfaces:
    ClassLoaderAware, Controllable, Service, Service
    All Known Implementing Classes:
    WrapperInvocationService

    public interface InvocationService
    extends Service
    The InvocationService is a Service for delivering executable objects to cluster members for distributed invocation. The executable objects must implement the Invocable interface, which extends the Java Runnable interface. Using this interface, application code can cause execution of an Invocable object to occur on any one, any set of, or all cluster members that are running the InvocationService.

    Note: Invocable objects that do not implement the PriorityTask interface will execute without any timeout. Furthermore, the executing service or worker thread will not be protected by the service guardian while the invocation is in progress.

    Since:
    Coherence 2.1
    Author:
    cp 2003-01-05
    • Method Detail

      • execute

        void execute​(Invocable task,
                     Set setMembers,
                     InvocationObserver observer)
        Asynchronously invoke the specified task on each of the specified members. This method may return before the task is executed, or before it finishes executing, or after it finishes executing, or any of the above; however, it is expected that aggressive implementations will attempt to return as quickly as possible.
        Parameters:
        task - the Invocable object to distribute to the specified members in order to be invoked on those members
        setMembers - (optional) a set of cluster members to which the Invocable object will be distributed; if null, the Invocable object will be distributed to all cluster members that are running this service
        observer - (optional) the InvocationObserver object that will receive notifications related to the Invocable object
      • query

        Map query​(Invocable task,
                  Set setMembers)
        Synchronously invoke the specified task on each of the specified members. This method will not return until the specified members have completed their processing, failed in their processing, or died trying.

        Members that are specified but are not currently running the InvocationService will not invoke the specified Invocable object. Members that leave (gracefully or otherwise) before the invocation completes will not register a result, and the amount of processing that completed is indeterminate. Members that encounter an exception during invocation will not be retried and no result is returned. Specifically, the result for a given member will not be present under the following conditions:

        • if the member did not exist
        • if the member was not running the service at the time that the query method was invoked
        • if the member left (via the shutdown or stop methods, or unexpectedly) before responding
        • if the member encountered an exception while processing and had not registered a non-null result
        • if the member completed successfully but registered no result
        • if the member completed successfully but explicitly registered a result of null

        Parameters:
        task - the Invocable object to distribute to the specified members in order to be invoked on those members
        setMembers - (optional) a set of cluster members to which the Invocable object will be distributed; if null, the Invocable object will be distributed to all cluster members that are running this service
        Returns:
        a Map of result objects keyed by Member object