Class OortPrimaryService<R,C>
- Type Parameters:
R
- the result typeC
- the opaque context type
- All Implemented Interfaces:
EventListener
,Bayeux.BayeuxListener
,ConfigurableServerChannel.ServerChannelListener
,ServerChannel.MessageListener
,org.eclipse.jetty.util.component.LifeCycle
- Direct Known Subclasses:
OortPrimaryLong
OortPrimaryService
extends OortService
to allow applications
to perform actions on entities that always live in a "primary" node.
Applications may have entities that are naturally owned by any node. For example, in a chat application a chat room may be created by a user in any node, and be owned by the node the user that created it is connected to.
There are cases, however, where entities cannot be owned by any node, but instead must be owned by one node only, usually referred to as the "primary" node.
A typical example of such an entity is a unique (across the cluster) ID
generator that produces IDs in the form of long
- the primitive Java
type - values, or a service that accesses a storage (such as a file system)
that is only available on a particular node, etc.
OortPrimaryService
makes easier to write services that perform actions
on entities that must be owned by a single node only.
There is one instance of OortPrimaryService
with the same name for each
node, but only one of them is the "primary".
Then, applications may call getPrimaryOortURL()
to get the Oort URL
of the "primary" node, and pass that Oort URL to
OortService.forward(String, Object, Object)
as described in OortService
.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.cometd.oort.OortService
OortService.Request, OortService.Result<U>, OortService.ServerContext
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
org.eclipse.jetty.util.component.AbstractLifeCycle.AbstractLifeCycleListener, org.eclipse.jetty.util.component.AbstractLifeCycle.StopException
Nested classes/interfaces inherited from interface org.cometd.bayeux.server.ConfigurableServerChannel.ServerChannelListener
ConfigurableServerChannel.ServerChannelListener.Weak
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
org.eclipse.jetty.util.component.LifeCycle.Listener
-
Field Summary
Fields inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
FAILED, STARTED, STARTING, STOPPED, STOPPING
-
Constructor Summary
-
Method Summary
Methods inherited from class org.cometd.oort.OortService
forward, getLocalSession, getName, getOort, getTimeout, onForward, onForwardFailed, onForwardMessage, onForwardSucceeded, onMessage, onResultMessage, setTimeout, toString
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addEventListener, getEventListeners, getState, getState, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeEventListener, setEventListeners, start, stop
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.cometd.bayeux.server.ServerChannel.MessageListener
onMessage
-
Constructor Details
-
OortPrimaryService
-
-
Method Details
-
isPrimary
public boolean isPrimary()- Returns:
- whether this node is the "primary" node
-
getPrimaryOortURL
- Returns:
- the "primary" Oort URL, or null if the "primary" node is down.
-
doStart
-
doStop
-