## Uses of Class
org.jgroups.annotations.MBean

Packages that use MBean
Package | Description
--- | ---
org.jgroups | Provides top-level public JGroups classes such as Channel, Message, etc.
org.jgroups.demos | Provides demonstrations of JGroups functionality.
org.jgroups.protocols | Provides implementations of transport protocols which are responsible for sending and receiving messages to/from the network.
org.jgroups.protocols.pbcast | Supports probabilistic broadcasts.

### Uses of MBean in org.jgroups

Classes in org.jgroups with annotations of type MBean
Modifier and Type | Class and Description
--- | ---
`class` | `Channel` A channel represents a group communication endpoint (like BSD datagram sockets).
`class` | `JChannel` JChannel is a pure Java implementation of Channel.
`class` | `JChannelFactory` Deprecated. Might get removed in 3.0. Use your own method of injecting channels

### Uses of MBean in org.jgroups.demos

Classes in org.jgroups.demos with annotations of type MBean
Modifier and Type | Class and Description
--- | ---
`class` | `JmxDemo` Shows how annotations can be used to expose attributes and operations

### Uses of MBean in org.jgroups.protocols

Classes in org.jgroups.protocols with annotations of type MBean
Modifier and Type | Class and Description
--- | ---
`class` | `DAISYCHAIN` Implementation of daisy chaining.
`class` | `DISCARD` Discards up or down messages based on a percentage; e.g., setting property 'up' to 0.1 causes 10% of all up messages to be discarded.
`class` | `Discovery` The Discovery protocol layer retrieves the initial membership (used by the GMS when started by sending event FIND_INITIAL_MBRS down the stack).
`class` | `EXAMPLE` Example of a protocol layer.
`class` | `Executing` This is the base protocol used for executions.
`class` | `FC` Simple flow control protocol based on a credit system.
`class` | `FD` Failure detection based on simple heartbeat protocol.
`class` | `FD_ALL` Failure detection based on simple heartbeat protocol.
`class` | `FD_SOCK` Failure detection protocol based on sockets.
`class` | `FlowControl` Simple flow control protocol based on a credit system.
`class` | `FRAG` Fragmentation layer.
`class` | `FRAG2` Fragmentation layer.
`class` | `Locking` Base locking protocol, handling most of the protocol communication with other instances.
`class` | `MERGE2` Protocol to discover subgroups; e.g., existing due to a network partition (that healed).
`class` | `MFC` Simple flow control protocol based on a credit system.
`class` | `RATE_LIMITER` Protocol which sends at most max_bytes in time_period milliseconds.
`class` | `RELAY` Simple relaying protocol: RELAY is added to the top of the stack, creates a channel to a bridge cluster, and - if coordinator - relays all multicast messages via the bridge cluster to the remote cluster. This is not a big virtual cluster, e.g.
`class` | `SCOPE` Implements https://jira.jboss.org/jira/browse/JGRP-822, which allows for concurrent delivery of messages from the same sender based on scopes.
`class` | `SEQUENCER` Implementation of total order protocol using a sequencer.
`class` | `SFC` Deprecated.
`class` | `STOMP` Protocol which provides STOMP (http://stomp.codehaus.org/) support.
`class` | `TP` Generic transport - specific implementations should extend this abstract class.
`class` | `UFC` Simple flow control protocol based on a credit system.
`class` | `UNICAST` Reliable unicast layer.
`class` | `UNICAST2` Reliable unicast layer.
`class` | `VIEW_SYNC` Periodically sends the view to the group.

### Uses of MBean in org.jgroups.protocols.pbcast

Classes in org.jgroups.protocols.pbcast with annotations of type MBean
Modifier and Type | Class and Description
--- | ---
`class` | `FLUSH` Flush, as it name implies, forces group members to flush their pending messages while blocking them to send any additional messages.
`class` | `GMS` Group membership protocol.
`class` | `NAKACK` Negative AcKnowledgement layer (NAKs).
`class` | `STABLE` Computes the broadcast messages that are stable; i.e., have been received by all members.
`class` | `STATE_TRANSFER` STATE_TRANSFER protocol based on byte array transfer.
`class` | `STREAMING_STATE_TRANSFER` `STREAMING_STATE_TRANSFER`, as its name implies, allows a streaming state transfer between two channel instances.