Skip navigation links
com.oracle.cep.cluster.ha.adapter
Class QueueTrimmingAdapter
java.lang.Object
|
+--com.oracle.cep.cluster.ha.adapter.QueueTrimmingAdapter
- Direct Known Subclasses:
- BroadcastQueueTrimmingAdapter, BufferingQueueTrimmingAdapter, CorrelatedQueueTrimmingAdapter
- public class QueueTrimmingAdapter
- extends java.lang.Object
- implements StreamSink, StreamSource, GroupMembershipListener, InitializingBean, ActivatableBean, ApplicationIdentityAware, StageIdentityAware, GroupNameAware, HAAdapter
This class implements an HA queue trimming adapter proxy. Missed messages and duplicate messages are possible when failover occurs depending on the trimming strategy that is in effect. This class can be used directly if setTrimmingStrategy(com.oracle.cep.cluster.ha.adapter.QueueTrimmingStrategy)
and setQueue(com.oracle.cep.cluster.ha.adapter.TrimmableQueue)
are set as properties on the adapter. However, in most cases it is easier to use the pre-defined adapters with these properties already set appropriately.
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
INITIALIZING
public static int INITIALIZING
PRIMARY
public static int PRIMARY
BECOMING_SECONDARY
public static int BECOMING_SECONDARY
SECONDARY
public static int SECONDARY
BECOMING_PRIMARY
public static int BECOMING_PRIMARY
state
protected java.util.concurrent.atomic.AtomicInteger state
queue
protected TrimmableQueue queue
trimmingStrategy
protected QueueTrimmingStrategy trimmingStrategy
trimmingProtocol
protected QueueTrimmingProtocol trimmingProtocol
log
protected Log log
stageIdentity
protected java.lang.String stageIdentity
queueLock
protected final java.util.concurrent.locks.ReentrantLock queueLock
lock
protected java.lang.Object lock
applicationIdentity
protected java.lang.String applicationIdentity
warmUpWindowMillis
protected long warmUpWindowMillis
warmUpFinishTime
protected java.util.concurrent.atomic.AtomicLong warmUpFinishTime
bundleContext
protected BundleContext bundleContext
QueueTrimmingAdapter
public QueueTrimmingAdapter()
setTrimmingStrategy
public void setTrimmingStrategy(QueueTrimmingStrategy trimmingStrategy)
- Set the
QueueTrimmingStrategy
for this adapter.
-
- Parameters:
trimmingStrategy
- Strategy to use for queue trimming
afterPropertiesSet
public void afterPropertiesSet()
-
- Specified by:
- afterPropertiesSet in interface InitializingBean
afterConfigurationActive
public void afterConfigurationActive()
throws java.lang.Exception
-
- Specified by:
- afterConfigurationActive in interface ActivatableBean
setQueue
public void setQueue(TrimmableQueue queue)
- Set the
TrimmableQueue
for this adapter
-
- Parameters:
queue
- to use for trimming.
onInsertEvent
public void onInsertEvent(java.lang.Object event)
throws EventRejectedException
- Either delegate an incoming event or insert it into the queue.
-
- Specified by:
- onInsertEvent in interface StreamSink
getLastReceivedKey
protected java.io.Serializable getLastReceivedKey()
-
- Returns:
-
doInsert
protected void doInsert(java.lang.Object event)
throws EventRejectedException
onMembershipChange
public void onMembershipChange(Server server,
Configuration configuration)
-
- Specified by:
- onMembershipChange in interface GroupMembershipListener
stateChange
protected boolean stateChange(Server server,
Configuration configuration)
isPrimary
public boolean isPrimary()
-
- Specified by:
- isPrimary in interface HAAdapter
- Returns:
- whether this adapter is the primary or not for queue trimming purposes.
isSecondary
public boolean isSecondary()
isInitializing
public boolean isInitializing()
setApplicationIdentity
public void setApplicationIdentity(java.lang.String applicationIdentity)
-
- Specified by:
- setApplicationIdentity in interface ApplicationIdentityAware
setStageIdentity
public void setStageIdentity(java.lang.String stageIdentity)
-
- Specified by:
- setStageIdentity in interface StageIdentityAware
getApplicationIdentity
public java.lang.String getApplicationIdentity()
getStageIdentity
public java.lang.String getStageIdentity()
setGroupName
public void setGroupName(java.lang.String groupName)
-
- Specified by:
- setGroupName in interface GroupNameAware
getGroupName
public java.lang.String getGroupName()
setEventSender
public void setEventSender(StreamSender sender)
-
- Specified by:
- setEventSender in interface StreamSource
getState
public int getState()
getQueue
public TrimmableQueue getQueue()
-
- Returns:
- the queue used for trimming
getTrimmingProtocol
public QueueTrimmingProtocol getTrimmingProtocol()
-
- Returns:
- the protocol used for trimming.
setTrimmingProtocol
public void setTrimmingProtocol(QueueTrimmingProtocol trimmingProtocol)
- Set the
QueueTrimmingAdapter.BasicQueueTrimmingProtocol
to use for trimming the TrimmableQueue
-
- Parameters:
trimmingProtocol
- to use
checkConfiguration
public void checkConfiguration(QueueTrimmingAdapterConfig config)
activateConfiguration
public void activateConfiguration(QueueTrimmingAdapterConfig config)
rollbackConfiguration
public void rollbackConfiguration(QueueTrimmingAdapterConfig config)
getWarmUpWindowMillis
public long getWarmUpWindowMillis()
setWarmUpWindowMillis
public void setWarmUpWindowMillis(long warmUpWindowMillis)
setBundleContext
public void setBundleContext(BundleContext bundleContext)
isExactTrimming
public boolean isExactTrimming()
setExactTrimming
public void setExactTrimming(boolean eventTrimming)