public class ConcurrentConnectionManager extends java.lang.Object implements IConcurrentConnectionManager
IConcurrentConnectionManager| Modifier and Type | Class and Description |
|---|---|
static class |
ConcurrentConnectionManager.NodeConnectionStatistics |
static class |
ConcurrentConnectionManager.Reservation |
IConcurrentConnectionManager.ReservationType| Modifier and Type | Field and Description |
|---|---|
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.Reservation>> |
activeReservationsByNodeByPool |
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.NodeConnectionStatistics>> |
nodeConnectionStatistics |
protected IParameterService |
parameterService |
protected java.util.Map<java.lang.String,java.lang.Long> |
transportErrorTimeByNode |
protected java.util.Set<java.lang.String> |
whiteList |
| Constructor and Description |
|---|
ConcurrentConnectionManager(IParameterService parameterService,
IStatisticManager statisticManager) |
| Modifier and Type | Method and Description |
|---|---|
void |
addToWhitelist(java.lang.String nodeId) |
java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.Reservation>> |
getActiveReservationsByNodeByPool() |
java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.NodeConnectionStatistics>> |
getNodeConnectionStatisticsByPoolByNodeId() |
java.util.Map<java.lang.String,java.util.Date> |
getPullReservationsByNodeId() |
java.util.Map<java.lang.String,java.util.Date> |
getPushReservationsByNodeId() |
int |
getReservationCount(java.lang.String poolId) |
static java.lang.String |
getReservationIdentifier(java.lang.String nodeId,
java.lang.String channelId) |
protected java.util.Map<java.lang.String,java.util.Date> |
getReservationsByNodeId(java.lang.String urlPath) |
java.lang.String[] |
getWhiteList() |
protected void |
logConnectedTimePeriod(java.lang.String nodeId,
long startMs,
long endMs,
java.lang.String poolId) |
protected void |
logTooBusyRejection(java.lang.String nodeId,
java.lang.String poolId) |
boolean |
releaseConnection(java.lang.String nodeId,
java.lang.String poolId) |
boolean |
releaseConnection(java.lang.String nodeId,
java.lang.String channelId,
java.lang.String poolId) |
void |
removeFromWhiteList(java.lang.String nodeId) |
protected void |
removeTimedOutReservations(java.util.Map<java.lang.String,ConcurrentConnectionManager.Reservation> reservations) |
boolean |
reserveConnection(java.lang.String nodeId,
java.lang.String poolId,
IConcurrentConnectionManager.ReservationType reservationRequest) |
boolean |
reserveConnection(java.lang.String nodeId,
java.lang.String channelId,
java.lang.String poolId,
IConcurrentConnectionManager.ReservationType reservationRequest) |
protected boolean |
shouldLogTransportError(java.lang.String nodeId) |
protected IParameterService parameterService
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.Reservation>> activeReservationsByNodeByPool
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.NodeConnectionStatistics>> nodeConnectionStatistics
protected java.util.Set<java.lang.String> whiteList
protected java.util.Map<java.lang.String,java.lang.Long> transportErrorTimeByNode
public ConcurrentConnectionManager(IParameterService parameterService, IStatisticManager statisticManager)
protected void logTooBusyRejection(java.lang.String nodeId,
java.lang.String poolId)
protected void logConnectedTimePeriod(java.lang.String nodeId,
long startMs,
long endMs,
java.lang.String poolId)
public boolean releaseConnection(java.lang.String nodeId,
java.lang.String channelId,
java.lang.String poolId)
releaseConnection in interface IConcurrentConnectionManagerpublic boolean releaseConnection(java.lang.String nodeId,
java.lang.String poolId)
releaseConnection in interface IConcurrentConnectionManagerpublic void addToWhitelist(java.lang.String nodeId)
addToWhitelist in interface IConcurrentConnectionManagerpublic void removeFromWhiteList(java.lang.String nodeId)
removeFromWhiteList in interface IConcurrentConnectionManagerpublic java.lang.String[] getWhiteList()
getWhiteList in interface IConcurrentConnectionManagerpublic int getReservationCount(java.lang.String poolId)
getReservationCount in interface IConcurrentConnectionManagerpublic boolean reserveConnection(java.lang.String nodeId,
java.lang.String channelId,
java.lang.String poolId,
IConcurrentConnectionManager.ReservationType reservationRequest)
reserveConnection in interface IConcurrentConnectionManagerpublic boolean reserveConnection(java.lang.String nodeId,
java.lang.String poolId,
IConcurrentConnectionManager.ReservationType reservationRequest)
reserveConnection in interface IConcurrentConnectionManagerreservationRequest - if true then hold onto reservation for the time it
typically takes for a node to reconnect after the initial
request. Otherwise, we know that the node has actually
connected for activity.public java.util.Map<java.lang.String,java.util.Date> getPullReservationsByNodeId()
getPullReservationsByNodeId in interface IConcurrentConnectionManagerpublic java.util.Map<java.lang.String,java.util.Date> getPushReservationsByNodeId()
getPushReservationsByNodeId in interface IConcurrentConnectionManagerprotected java.util.Map<java.lang.String,java.util.Date> getReservationsByNodeId(java.lang.String urlPath)
protected void removeTimedOutReservations(java.util.Map<java.lang.String,ConcurrentConnectionManager.Reservation> reservations)
public static java.lang.String getReservationIdentifier(java.lang.String nodeId,
java.lang.String channelId)
public java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.NodeConnectionStatistics>> getNodeConnectionStatisticsByPoolByNodeId()
getNodeConnectionStatisticsByPoolByNodeId in interface IConcurrentConnectionManagerprotected boolean shouldLogTransportError(java.lang.String nodeId)
public java.util.Map<java.lang.String,java.util.Map<java.lang.String,ConcurrentConnectionManager.Reservation>> getActiveReservationsByNodeByPool()
getActiveReservationsByNodeByPool in interface IConcurrentConnectionManager