class ClusterSingletonManager extends Actor with FSM[State, Data]

Manages singleton actor instance among all cluster nodes or a group of nodes tagged with a specific role. At most one singleton instance is running at any point in time.

The ClusterSingletonManager is supposed to be started on all nodes, or all nodes with specified role, in the cluster with actorOf. The actual singleton is started on the oldest node by creating a child actor from the supplied singletonProps.

The singleton actor is always running on the oldest member with specified role. The oldest member is determined by akka.cluster.Member#isOlderThan. This can change when removing members. A graceful hand over can normally be performed when current oldest node is leaving the cluster. Be aware that there is a short time period when there is no active singleton during the hand-over process.

The cluster failure detector will notice when oldest node becomes unreachable due to things like JVM crash, hard shut down, or network failure. When the crashed node has been removed (via down) from the cluster then a new oldest node will take over and a new singleton actor is created. For these failure scenarios there will not be a graceful hand-over, but more than one active singletons is prevented by all reasonable means. Some corner cases are eventually resolved by configurable timeouts.

You access the singleton actor with ClusterSingletonProxy. Alternatively the singleton actor may broadcast its existence when it is started.

Use factory method ClusterSingletonManager#props to create the akka.actor.Props for the actor.

Not intended for subclassing by user code.

Annotations
@DoNotInherit()
Source
ClusterSingletonManager.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ClusterSingletonManager
  2. FSM
  3. ActorLogging
  4. Listeners
  5. Actor
  6. AnyRef
  7. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new ClusterSingletonManager(singletonProps: Props, terminationMessage: Any, settings: ClusterSingletonManagerSettings)

    singletonProps

    akka.actor.Props of the singleton actor instance.

    terminationMessage

    When handing over to a new oldest node this terminationMessage is sent to the singleton actor to tell it to finish its work, close resources, and stop. The hand-over to the new oldest node is completed when the singleton actor is terminated. Note that akka.actor.PoisonPill is a perfectly fine terminationMessage if you only need to stop the actor.

    settings

    see ClusterSingletonManagerSettings

Type Members

  1. type Event = actor.FSM.Event[Data]
    Definition Classes
    FSM
  2. type Receive = PartialFunction[Any, Unit]
    Definition Classes
    Actor
  3. type State = actor.FSM.State[ClusterSingletonManager.State, Data]
    Definition Classes
    FSM
  4. type StateFunction = PartialFunction[Event, State]
    Definition Classes
    FSM
  5. type StopEvent = actor.FSM.StopEvent[ClusterSingletonManager.State, Data]
    Definition Classes
    FSM
  6. type Timeout = Option[FiniteDuration]
    Definition Classes
    FSM
  7. final class TransformHelper extends AnyRef
    Definition Classes
    FSM
  8. type TransitionHandler = PartialFunction[(ClusterSingletonManager.State, ClusterSingletonManager.State), Unit]
    Definition Classes
    FSM

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to any2stringadd[ClusterSingletonManager] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. val ->: actor.FSM.->.type
    Definition Classes
    FSM
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. val Event: actor.FSM.Event.type
    Definition Classes
    FSM
  7. val StateTimeout: actor.FSM.StateTimeout.type
    Definition Classes
    FSM
  8. val StopEvent: actor.FSM.StopEvent.type
    Definition Classes
    FSM
  9. def addRemoved(node: UniqueAddress): Unit
  10. def aroundPostRestart(reason: Throwable): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  11. def aroundPostStop(): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  12. def aroundPreRestart(reason: Throwable, message: Option[Any]): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  13. def aroundPreStart(): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  14. def aroundReceive(receive: actor.Actor.Receive, msg: Any): Unit
    Attributes
    protected[akka]
    Definition Classes
    Actor
    Annotations
    @InternalApi()
  15. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  16. final def cancelTimer(name: String): Unit
    Definition Classes
    FSM
  17. def cleanupOverdueNotMemberAnyMore(): Unit
  18. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate() @throws( ... )
  19. val cluster: Cluster
  20. implicit val context: ActorContext
    Definition Classes
    Actor
  21. val coordShutdown: CoordinatedShutdown
  22. def ensuring(cond: (ClusterSingletonManager) ⇒ Boolean, msg: ⇒ Any): ClusterSingletonManager
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  23. def ensuring(cond: (ClusterSingletonManager) ⇒ Boolean): ClusterSingletonManager
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  24. def ensuring(cond: Boolean, msg: ⇒ Any): ClusterSingletonManager
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  25. def ensuring(cond: Boolean): ClusterSingletonManager
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to Ensuring[ClusterSingletonManager] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  26. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  27. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  28. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to StringFormat[ClusterSingletonManager] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @inline()
  29. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  30. def getNextOldestChanged(): Unit
  31. def gossip(msg: Any)(implicit sender: ActorRef): Unit
    Attributes
    protected
    Definition Classes
    Listeners
  32. final def goto(nextStateName: ClusterSingletonManager.State): State
    Definition Classes
    FSM
  33. def gotoHandingOver(singleton: Option[ActorRef], handOverTo: Option[ActorRef]): State
  34. def gotoOldest(): State
    Annotations
    @InternalStableApi()
  35. def gotoStopping(singleton: ActorRef): State
  36. def handOverDone(handOverTo: Option[ActorRef]): State
  37. def handleOldestChanged(singleton: Option[ActorRef], oldestOption: Option[UniqueAddress]): State
  38. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  39. final def initialize(): Unit
    Definition Classes
    FSM
  40. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  41. final def isTimerActive(name: String): Boolean
    Definition Classes
    FSM
  42. val lease: Option[Lease]
  43. val leaseRetryInterval: FiniteDuration
  44. def listenerManagement: actor.Actor.Receive
    Attributes
    protected
    Definition Classes
    Listeners
  45. val listeners: Set[ActorRef]
    Attributes
    protected
    Definition Classes
    Listeners
  46. def log: LoggingAdapter
    Definition Classes
    ActorLogging
  47. def logInfo(template: String, arg1: Any, arg2: Any, arg3: Any): Unit
  48. def logInfo(template: String, arg1: Any, arg2: Any): Unit
  49. def logInfo(template: String, arg1: Any): Unit
  50. def logInfo(message: String): Unit
  51. def logTermination(reason: Reason): Unit
    Attributes
    protected
    Definition Classes
    FSM
  52. val maxHandOverRetries: Int
  53. val maxTakeOverRetries: Int
  54. val memberExitingProgress: Promise[Done]
  55. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  56. final def nextStateData: Data
    Definition Classes
    FSM
  57. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  58. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @HotSpotIntrinsicCandidate()
  59. var oldestChangedBuffer: ActorRef
  60. var oldestChangedReceived: Boolean
  61. final def onTermination(terminationHandler: PartialFunction[StopEvent, Unit]): Unit
    Definition Classes
    FSM
  62. final def onTransition(transitionHandler: TransitionHandler): Unit
    Definition Classes
    FSM
  63. def peer(at: Address): ActorSelection
  64. def postRestart(reason: Throwable): Unit
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  65. def postStop(): Unit
    Definition Classes
    ClusterSingletonManager → FSM → Actor
  66. def preRestart(reason: Throwable, message: Option[Any]): Unit
    Definition Classes
    Actor
    Annotations
    @throws( classOf[java.lang.Exception] )
  67. def preStart(): Unit
    Definition Classes
    ClusterSingletonManager → Actor
  68. def receive: Receive
    Definition Classes
    FSM → Actor
  69. val removalMargin: FiniteDuration
  70. var removed: Map[UniqueAddress, Deadline]
  71. def scheduleDelayedMemberRemoved(m: Member): Unit
  72. implicit final val self: ActorRef
    Definition Classes
    Actor
  73. var selfExited: Boolean
  74. def selfMemberExited(): Unit
  75. val selfUniqueAddressOption: Some[UniqueAddress]
  76. final def sender(): ActorRef
    Definition Classes
    Actor
  77. final def setStateTimeout(state: ClusterSingletonManager.State, timeout: Timeout): Unit
    Definition Classes
    FSM
  78. final def setTimer(name: String, msg: Any, timeout: FiniteDuration, repeat: Boolean): Unit
    Definition Classes
    FSM
  79. final def startWith(stateName: ClusterSingletonManager.State, stateData: Data, timeout: Timeout): Unit
    Definition Classes
    FSM
  80. final def stateData: Data
    Definition Classes
    FSM
  81. final def stateName: ClusterSingletonManager.State
    Definition Classes
    FSM
  82. final def stay(): State
    Definition Classes
    FSM
  83. final def stop(reason: Reason, stateData: Data): State
    Definition Classes
    FSM
  84. final def stop(reason: Reason): State
    Definition Classes
    FSM
  85. final def stop(): State
    Definition Classes
    FSM
  86. def supervisorStrategy: SupervisorStrategy
    Definition Classes
    Actor
  87. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  88. def toString(): String
    Definition Classes
    AnyRef → Any
  89. implicit final def total2pf(transitionHandler: (ClusterSingletonManager.State, ClusterSingletonManager.State) ⇒ Unit): TransitionHandler
    Definition Classes
    FSM
  90. final def transform(func: StateFunction): TransformHelper
    Definition Classes
    FSM
  91. def tryAcquireLease(): actor.FSM.State[ClusterSingletonManager.State, Data]
  92. def tryGotoOldest(): State
  93. def unhandled(message: Any): Unit
    Definition Classes
    Actor
  94. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  95. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  96. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  97. final def when(stateName: ClusterSingletonManager.State, stateTimeout: FiniteDuration)(stateFunction: StateFunction): Unit
    Definition Classes
    FSM
  98. final def whenUnhandled(stateFunction: StateFunction): Unit
    Definition Classes
    FSM
  99. def [B](y: B): (ClusterSingletonManager, B)
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to ArrowAssoc[ClusterSingletonManager] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc

Shadowed Implicit Value Members

  1. def ->[B](y: B): (ClusterSingletonManager, B)
    Implicit
    This member is added by an implicit conversion from ClusterSingletonManager to ArrowAssoc[ClusterSingletonManager] performed by method ArrowAssoc in scala.Predef.
    Shadowing
    This implicitly inherited member is shadowed by one or more members in this class.
    To access this member you can use a type ascription:
    (clusterSingletonManager: ArrowAssoc[ClusterSingletonManager]).->(y)
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from ActorLogging

Inherited from Listeners

Inherited from Actor

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd from ClusterSingletonManager to any2stringadd[ClusterSingletonManager]

Inherited by implicit conversion StringFormat from ClusterSingletonManager to StringFormat[ClusterSingletonManager]

Inherited by implicit conversion Ensuring from ClusterSingletonManager to Ensuring[ClusterSingletonManager]

Inherited by implicit conversion ArrowAssoc from ClusterSingletonManager to ArrowAssoc[ClusterSingletonManager]

Ungrouped