All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.tangosol.net.Guardable Maven / Gradle / Ivy

There is a newer version: 24.09
Show newest version
/*
 * Copyright (c) 2000, 2020, Oracle and/or its affiliates.
 *
 * Licensed under the Universal Permissive License v 1.0 as shown at
 * http://oss.oracle.com/licenses/upl.
 */

package com.tangosol.net;


/**
* A Guardable is a logical execution unit whose lifetime may be guarded by a
* Guardian.  A Guardable may be a simple thread, or a more complex service.
* 

* Guardable objects are responsible for periodically proving that they are * alive. Failure to do so will cause the Guardian to take corrective actions: *

    *
  1. The Guardian may attempt to revive the Guardable by calling * recover. *
  2. Upon failure to recover, the Guardian will abandon the Guardable by * unregistering it and calling terminate. *
* Note: To prevent cascading failure (e.g. deadlock) all corrective * actions are performed by the Guardian on temporary threads. *

* Guardable objects should be registered with an sufficiently sized SLA to * accommodate variances in system-load, GC latencies etc. Guardians are not * responsible for detecting or correcting for these conditions. * * @author rhl * @since Coherence 3.5 */ public interface Guardable { /** * Set the guard context. Passing in null indicates that the * Guardable is no longer being monitored by a Guardian. * * @param context the context guarding this Guardable */ public void setContext(Guardian.GuardContext context); /** * Return the guard context monitoring this guardable, or null * if this Guardable is no longer being monitored. * * @return the context guarding this Guardable */ public Guardian.GuardContext getContext(); /** * Attempt to recover this Guardable. *

* In a common case where the Guardable has an associated thread, a * suitable action would be to interrupt the thread. *

* If this method does not return before the timeout expires, the Guardable * will be considered unrecoverable and will be terminated. */ public void recover(); /** * Terminate this Guardable. *

* This is the final action taken by the Guardian before the Guardable is * removed from its responsibility list. */ public void terminate(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy