public class QueueService extends Object implements ManagedService, MigrationAwareService, TransactionalService, RemoteService, EventPublishingService<QueueEvent,ItemListener>, StatisticsAwareService<LocalQueueStats>, QuorumAwareService, SplitBrainHandlerService
QueueEvictionProcessor| Modifier and Type | Field and Description |
|---|---|
static String |
SERVICE_NAME |
| Constructor and Description |
|---|
QueueService(NodeEngine nodeEngine) |
| Modifier and Type | Method and Description |
|---|---|
void |
addContainer(String name,
QueueContainer container) |
String |
addItemListener(String name,
ItemListener listener,
boolean includeValue,
boolean isLocal) |
void |
beforeMigration(PartitionMigrationEvent partitionMigrationEvent)
Called before migration process starts, on both source and destination members.
|
void |
cancelEviction(String name) |
void |
commitMigration(PartitionMigrationEvent event)
Commits the migration process for this service, on both source and destination members.
|
boolean |
containsQueue(String name) |
QueueProxyImpl |
createDistributedObject(String objectId)
Creates a distributed object.
|
LocalQueueStats |
createLocalQueueStats(String name)
Returns the local queue statistics for the queue with the given
name. |
LocalQueueStats |
createLocalQueueStats(String name,
int partitionId)
Returns the local queue statistics for the given name and
partition ID.
|
TransactionalQueueProxy |
createTransactionalObject(String name,
Transaction transaction) |
void |
destroyDistributedObject(String name)
Destroys a distributed object.
|
void |
dispatchEvent(QueueEvent event,
ItemListener listener)
Notifies the service of a published event.
|
LocalQueueStatsImpl |
getLocalQueueStatsImpl(String name) |
NodeEngine |
getNodeEngine() |
QueueContainer |
getOrCreateContainer(String name,
boolean fromBackup) |
String |
getQuorumName(String name)
Gets the name of the quorum associated with specified operation name.
|
Map<String,LocalQueueStats> |
getStats()
Return the service statistics for the local instance.
|
void |
init(NodeEngine nodeEngine,
Properties properties)
Initializes this service.
|
Runnable |
prepareMergeRunnable()
When the two separate clusters merge (resolve a split-brain), this method is called to return
a
Runnable, that will merge the clusters. |
Operation |
prepareReplicationOperation(PartitionReplicationEvent event)
Returns an operation to replicate service data and/or state for a specific partition replica
on another cluster member.
|
boolean |
removeItemListener(String name,
String registrationId) |
void |
reset()
Resets this service back to its initial state.
|
void |
rollbackMigration(PartitionMigrationEvent event)
Rollback the migration process for this service, on both source and destination members.
|
void |
rollbackTransaction(String transactionId) |
void |
scheduleEviction(String name,
long delay) |
void |
shutdown(boolean terminate)
Shuts down this service.
|
public static final String SERVICE_NAME
public QueueService(NodeEngine nodeEngine)
public void scheduleEviction(String name, long delay)
public void cancelEviction(String name)
public void init(NodeEngine nodeEngine, Properties properties)
ManagedServiceinit in interface ManagedServicenodeEngine - the NodeEngine that this service belongs toproperties - the Properties (can be used to pass settings to the service)public void reset()
ManagedServiceTODO: what is the purpose of reset
reset in interface ManagedServicepublic void shutdown(boolean terminate)
ManagedServiceTODO: what is the purpose of the terminate variable
shutdown in interface ManagedServiceterminate - true to shut down this servicepublic QueueContainer getOrCreateContainer(String name, boolean fromBackup)
public void addContainer(String name, QueueContainer container)
public boolean containsQueue(String name)
public void beforeMigration(PartitionMigrationEvent partitionMigrationEvent)
MigrationAwareServiceService can take actions required before migration. Migration process will block until this method returns. If this method fails by throwing an exception, migration process for specific partition will fail and will be rolled back.
beforeMigration in interface MigrationAwareServicepartitionMigrationEvent - migration eventpublic Operation prepareReplicationOperation(PartitionReplicationEvent event)
MigrationAwareServiceThis method will be called on source member whenever partitioning system requires to copy/replicate a partition replica. Returned operation will be executed on destination member. If operation fails by throwing exception, migration process will fail and will be rolled back.
Returning null is allowed and means service does not have anything to replicate.
prepareReplicationOperation in interface MigrationAwareServiceevent - replicationpublic void commitMigration(PartitionMigrationEvent event)
MigrationAwareServiceCommit is not expected to fail at this point, all exceptions will be suppressed and logged. Implementations of this method must be thread safe as this method may be called concurrently for different migrations on different partitions.
commitMigration in interface MigrationAwareServiceevent - migration eventpublic void rollbackMigration(PartitionMigrationEvent event)
MigrationAwareServiceRollback is not expected to fail at this point, all exceptions will be suppressed and logged. Implementations of this method must be thread safe as this method may be called concurrently for different migrations on different partitions.
rollbackMigration in interface MigrationAwareServiceevent - migration eventpublic void dispatchEvent(QueueEvent event, ItemListener listener)
EventPublishingServicedispatchEvent in interface EventPublishingService<QueueEvent,ItemListener>event - the published eventlistener - the listener registered for this eventpublic QueueProxyImpl createDistributedObject(String objectId)
RemoteServicecreateDistributedObject in interface RemoteServiceobjectId - the name for the created distributed objectpublic void destroyDistributedObject(String name)
RemoteServicedestroyDistributedObject in interface RemoteServicename - the name of the distributed object to destroypublic String addItemListener(String name, ItemListener listener, boolean includeValue, boolean isLocal)
public NodeEngine getNodeEngine()
public LocalQueueStats createLocalQueueStats(String name, int partitionId)
LocalQueueStats.getOwnedItemCount(),
otherwise it contains LocalQueueStats.getBackupItemCount().name - the name of the queue for which the statistics are returnedpartitionId - the partition ID for which the statistics are returnedpublic LocalQueueStats createLocalQueueStats(String name)
name. If this node is the owner of the queue,
returned stats contain LocalQueueStats.getOwnedItemCount(), otherwise it contains
LocalQueueStats.getBackupItemCount().name - the name of the queue for which the statistics are returnedpublic LocalQueueStatsImpl getLocalQueueStatsImpl(String name)
public TransactionalQueueProxy createTransactionalObject(String name, Transaction transaction)
createTransactionalObject in interface TransactionalServicepublic void rollbackTransaction(String transactionId)
rollbackTransaction in interface TransactionalServicepublic Map<String,LocalQueueStats> getStats()
StatisticsAwareServicegetStats in interface StatisticsAwareService<LocalQueueStats>public String getQuorumName(String name)
QuorumAwareServicegetQuorumName in interface QuorumAwareServicename - the operation name for which the quorum name is returedpublic Runnable prepareMergeRunnable()
SplitBrainHandlerServiceRunnable, that will merge the clusters.prepareMergeRunnable in interface SplitBrainHandlerServiceRunnable that will merge the clustersCopyright © 2018 Hazelcast, Inc.. All Rights Reserved.