|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.openspaces.events.AbstractSpaceListeningContainer org.openspaces.events.AbstractEventListenerContainer org.openspaces.events.AbstractTemplateEventListenerContainer org.openspaces.events.AbstractTransactionalEventListenerContainer org.openspaces.events.notify.AbstractNotifyEventListenerContainer
public abstract class AbstractNotifyEventListenerContainer
Base class for notifications based containers allowing to register listener that will be
triggered by the space if notifications occur. Provides all the necessary parameters that are
used by EventSessionConfig
and support methods for creating
EventSessionFactory
and
DataEventSession
objects.
The container allows to set the template object used for the notify registration. Note, this can
be a Pojo based template, or one of GigaSpace's query classes such as
SQLQuery
.
Masking of which operations will cause notifications can be set using
setNotifyWrite(Boolean)
, setNotifyUpdate(Boolean)
,
setNotifyTake(Boolean)
and setNotifyLeaseExpire(Boolean)
. Note, if no flag is
set, notifications will be send for write operations.
Batching of notifications can be turned on by setting both setBatchSize(Integer)
and
setBatchTime(Integer)
. When turning on batch notifications, the listener can choose whether
to receive the events as an array (by setting setPassArrayAsIs(boolean)
to true
,
or to receive the notifications one by one (setting it to false
). By default, the
setPassArrayAsIs(boolean)
is set to false
.
Fifo ordering of raised notification can be controlled by setting setFifo(boolean)
flag
to true
. Note, for a full fifo based ordering the relevant entries in the space
should be configured to be fifo as well.
Listener registration across replicated spaces can be set using
setReplicateNotifyTemplate(boolean)
and setTriggerNotifyTemplate(boolean)
.
The communication protocol between the space "server" and the even listener client can be
configured using either setComType(int)
or setComTypeName(String)
. The
available options are COM_TYPE_UNICAST
, COM_TYPE_MULTIPLEX
and
COM_TYPE_MULTICAST
. If using setComType(int)
the integer constant value should
be used. If using setComTypeName(String)
the actual name of the com type can be used (unicast
,
multiplex
or multicast
). The default communication type is
COM_TYPE_UNICAST
.
The AbstractTemplateEventListenerContainer.setTemplate(Object)
parameter is required in order to perform matching on which
events to receive. If the AbstractEventListenerContainer.setEventListener(org.openspaces.events.SpaceDataEventListener)
implements EventTemplateProvider
and the template is directly set,
the event listener will be used to get the template. This feature helps when event listeners
directly can only work with a certain template and removes the requirement of configuring the
template as well.
Provides invokeListenerWithTransaction(Object,Object,boolean,boolean)
allowing to execute the
listener within a transactional context. Also allows for the performTakeOnNotify to control if a
take operation will be performed against the space with the given event data in order to remove it
from the space.
EventSessionConfig
,
EventSessionFactory
,
DataEventSession
Field Summary | |
---|---|
static int |
COM_TYPE_MULTICAST
Controls how notification are propagated from the space to the listener. |
static int |
COM_TYPE_MULTIPLEX
Controls how notification are propagated from the space to the listener. |
static String |
COM_TYPE_PREFIX
|
static int |
COM_TYPE_UNICAST
Controls how notification are propagated from the space to the listener. |
Fields inherited from class org.openspaces.events.AbstractEventListenerContainer |
---|
failedEvents, processedEvents |
Fields inherited from class org.openspaces.events.AbstractSpaceListeningContainer |
---|
beanName, logger |
Constructor Summary | |
---|---|
AbstractNotifyEventListenerContainer()
|
Method Summary | |
---|---|
protected DataEventSession |
createDataEventSession(EventSessionFactory factory)
Creates a new DataEventSession based on the provided factory. |
protected EventSessionConfig |
createEventSessionConfig()
Creates a new EventSessionConfig based on the different
parameters this container accepts. |
protected EventSessionFactory |
createEventSessionFactory()
Creates a new event session factory based on the space provided. |
protected Integer |
getBatchSize()
|
protected Integer |
getBatchTime()
|
protected int |
getCommType()
|
protected Boolean |
getNotifyLeaseExpire()
|
protected Boolean |
getNotifyTake()
|
protected Boolean |
getNotifyUnmatched()
|
protected Boolean |
getNotifyUpdate()
|
protected Boolean |
getNotifyWrite()
|
protected long |
getRenewDuration()
The period of time that passes between client failure, and the time your notifications stop being sent. |
protected long |
getRenewExpiration()
The period of time your notifications stop being renewed. |
protected long |
getRenewRTT()
RoundTripTime - the time that takes to reach the server and return. |
void |
initialize()
Initialize this container. |
protected void |
invokeListenerWithTransaction(com.gigaspaces.events.batching.BatchRemoteEvent batchRemoteEvent,
boolean performTakeOnNotify,
boolean ignoreEventOnNullTake)
|
protected void |
invokeListenerWithTransaction(Object eventData,
Object source,
boolean performTakeOnNotify,
boolean ignoreEventOnNullTake)
Executes the given listener. |
protected boolean |
isAutoRenew()
|
protected boolean |
isBatchEnabled()
Returns true when batching is enabled. |
protected boolean |
isFifo()
|
protected Boolean |
isGuaranteed()
|
protected Boolean |
isNotifyAll()
|
protected Boolean |
isNotifyLeaseExpire()
|
protected Boolean |
isNotifyTake()
|
protected Boolean |
isNotifyUnmatched()
|
protected Boolean |
isNotifyUpdate()
|
protected Boolean |
isNotifyWrite()
|
protected boolean |
isPassArrayAsIs()
|
protected Boolean |
isReplicateNotifyTemplate()
|
protected Boolean |
isTriggerNotifyTemplate()
|
protected void |
registerListener(DataEventSession dataEventSession,
net.jini.core.event.RemoteEventListener listener)
Registers a listener using the provided DataEventSession and
based on different parameters set on this container. |
void |
setAutoRenew(boolean autoRenew)
If setListenerLease(long) is set, automatically performs lease renewal. |
void |
setBatchSize(Integer batchSize)
If set, turns batching event notifications where the server space accumalates notifications to be sent and then send them in batch. |
void |
setBatchTime(Integer batchTime)
If set, turns batching event notifications where the server space accumalates notifications to be sent and then send them in batch. |
void |
setComType(int comType)
See setComTypeName(String) . |
void |
setComTypeName(String comTypeName)
Sets the communication protocol for the notification registration. |
void |
setFifo(boolean fifo)
Determines if events arrives in the same order they were triggered by the space "server". |
void |
setGuaranteed(Boolean guaranteed)
Controls if notifications will be guaraneteed (at least once) in case of failover. |
void |
setLeaseListener(net.jini.lease.LeaseListener leaseListener)
If setAutoRenew(boolean) is set to true sets the lease listener for
it. |
void |
setListenerLease(long listenerLease)
Controls the lease associated with the registered listener. |
void |
setNotifyAll(Boolean notifyAll)
Turns on notifications for all operations. |
void |
setNotifyFilter(INotifyDelegatorFilter notifyFilter)
Allows to register a filter on the server side that can filter out or modify notifications that will be sent by the space "server". |
void |
setNotifyLeaseExpire(Boolean notifyLeaseExpire)
Turns on notification for least expiration. |
void |
setNotifyTake(Boolean notifyTake)
Turns on notifications for take operations. |
void |
setNotifyUnmatched(Boolean notifyUnmatched)
Turns on notifications for unmatched templates (a template that matched an entry but not it does not). |
void |
setNotifyUpdate(Boolean notifyUpdate)
Turns on notifications for update operations. |
void |
setNotifyWrite(Boolean notifyWrite)
Turns on notifications for write operations. |
void |
setPassArrayAsIs(boolean passArrayAsIs)
When batching is turned on, should the batch of events be passed as an Object[] to
the listener. |
void |
setRenewDuration(long renewDuration)
The period of time that passes between client failure, and the time your notifications stop being sent. |
void |
setRenewExpiration(long renewExpiration)
The period of time your notifications stop being renewed. |
void |
setRenewRTT(long renewRTT)
RoundTripTime - the time that takes to reach the server and return. |
void |
setReplicateNotifyTemplate(boolean replicateNotifyTemplate)
If using a replicated space controls if the listener will be replicated between all the replicated cluster members. |
void |
setTriggerNotifyTemplate(boolean triggerNotifyTemplate)
If using a replicated space controls if the listener that are replicated to cluster members will raise notifications. |
protected void |
validateConfiguration()
Validate the configuration of this container. |
Methods inherited from class org.openspaces.events.AbstractTransactionalEventListenerContainer |
---|
getTransactionDefinition, getTransactionManager, getTransactionManagerName, isTransactional, setDisableTransactionValidation, setTransactionIsolationLevel, setTransactionIsolationLevelName, setTransactionManager, setTransactionName, setTransactionTimeout |
Methods inherited from class org.openspaces.events.AbstractTemplateEventListenerContainer |
---|
afterPropertiesSet, getReceiveTemplate, getTemplate, isPerformSnapshot, setPerformSnapshot, setTemplate |
Methods inherited from class org.openspaces.events.AbstractEventListenerContainer |
---|
doStart, executeListener, getActualEventListener, getApplicationContext, getEventListener, getEventListenerClass, getFailedEvents, getProcessedEvents, handleListenerException, invokeExceptionListener, invokeListener, setApplicationContext, setEventListener, setEventListenerRef |
Methods inherited from class org.openspaces.events.AbstractSpaceListeningContainer |
---|
destroy, doAfterStart, doBeforeStop, doInitialize, doRescheduleTask, doShutdown, doStop, getBeanName, getGigaSpace, getStatus, isActive, isRunning, message, onApplicationEvent, rescheduleTaskIfNecessary, setActiveWhenPrimary, setAutoStart, setBeanName, setGigaSpace, setRegisterSpaceModeListener, shutdown, start, stop, waitWhileNotRunning |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.openspaces.pu.service.ServiceDetailsProvider |
---|
getServicesDetails |
Methods inherited from interface org.openspaces.pu.service.ServiceMonitorsProvider |
---|
getServicesMonitors |
Field Detail |
---|
public static final String COM_TYPE_PREFIX
public static final int COM_TYPE_UNICAST
public static final int COM_TYPE_MULTIPLEX
COM_TYPE_UNICAST
)
in terms of communication protocol but uses a single client side multiplexer which handles
all the dispatching to the different notification listeners.
public static final int COM_TYPE_MULTICAST
Constructor Detail |
---|
public AbstractNotifyEventListenerContainer()
Method Detail |
---|
public void setComType(int comType)
setComTypeName(String)
.
COM_TYPE_MULTICAST
,
COM_TYPE_MULTIPLEX
,
COM_TYPE_UNICAST
protected int getCommType()
public void setComTypeName(String comTypeName)
COM_TYPE_MULTICAST
,
COM_TYPE_MULTIPLEX
,
COM_TYPE_UNICAST
public void setFifo(boolean fifo)
protected boolean isFifo()
public void setBatchSize(Integer batchSize)
setBatchTime(Integer)
must be set as well.
protected Integer getBatchSize()
public void setBatchTime(Integer batchTime)
setBatchSize(Integer)
must be set as well.
protected Integer getBatchTime()
public void setAutoRenew(boolean autoRenew)
setListenerLease(long)
is set, automatically performs lease renewal. Defaults to
false
.
setListenerLease(long)
protected boolean isAutoRenew()
protected long getRenewExpiration()
setAutoRenew(boolean)
is
true
.
Defaults to EventSessionConfig.DEFAULT_RENEW_EXPIRATION
.
public void setRenewExpiration(long renewExpiration)
setAutoRenew(boolean)
is
true
.
Defaults to EventSessionConfig.DEFAULT_RENEW_EXPIRATION
.
protected long getRenewDuration()
setAutoRenew(boolean)
is true
.
Defaults to EventSessionConfig.DEFAULT_RENEW_DURATION
.
public void setRenewDuration(long renewDuration)
setAutoRenew(boolean)
is true
.
Defaults to EventSessionConfig.DEFAULT_RENEW_DURATION
.
protected long getRenewRTT()
setAutoRenew(boolean)
is
true
.
Defaults to EventSessionConfig.DEFAULT_RENEW_RTT
.
public void setRenewRTT(long renewRTT)
setAutoRenew(boolean)
is
true
.
Defaults to EventSessionConfig.DEFAULT_RENEW_RTT
.
public void setLeaseListener(net.jini.lease.LeaseListener leaseListener)
setAutoRenew(boolean)
is set to true
sets the lease listener for
it.
public void setListenerLease(long listenerLease)
Lease.FOREVER
.
setAutoRenew(boolean)
public void setNotifyFilter(INotifyDelegatorFilter notifyFilter)
public void setNotifyWrite(Boolean notifyWrite)
false
.
protected Boolean isNotifyWrite()
public void setNotifyUpdate(Boolean notifyUpdate)
false
.
protected Boolean isNotifyUpdate()
public void setNotifyTake(Boolean notifyTake)
false
.
protected Boolean isNotifyTake()
public void setNotifyAll(Boolean notifyAll)
false
.
protected Boolean isNotifyAll()
public void setNotifyLeaseExpire(Boolean notifyLeaseExpire)
false
.
protected Boolean isNotifyLeaseExpire()
public void setNotifyUnmatched(Boolean notifyUnmatched)
false
.
protected Boolean isNotifyUnmatched()
public void setTriggerNotifyTemplate(boolean triggerNotifyTemplate)
setReplicateNotifyTemplate(boolean)
protected Boolean isTriggerNotifyTemplate()
public void setReplicateNotifyTemplate(boolean replicateNotifyTemplate)
If working directly with a cluster memeber, the default value will be false
.
Otherwise, the default value will be based on the cluster schema (which is true for clusters
with backups).
setTriggerNotifyTemplate(boolean)
protected Boolean isReplicateNotifyTemplate()
public void setGuaranteed(Boolean guaranteed)
protected Boolean isGuaranteed()
public void setPassArrayAsIs(boolean passArrayAsIs)
Object[]
to
the listener. Default to false
which means it will be passed one event at a time.
protected boolean isPassArrayAsIs()
protected Boolean getNotifyWrite()
protected Boolean getNotifyUpdate()
protected Boolean getNotifyTake()
protected Boolean getNotifyLeaseExpire()
protected Boolean getNotifyUnmatched()
protected boolean isBatchEnabled()
true
when batching is enabled.
public void initialize() throws DataAccessException
AbstractSpaceListeningContainer
true
will call AbstractSpaceListeningContainer.doStart()
(if it is set to true
,
lifecycle of the container will be controlled by the current space mode).
AbstractSpaceListeningContainer.doInitialize()
will be called for additional initialization after the possible
AbstractSpaceListeningContainer.doStart()
call.
initialize
in class AbstractTransactionalEventListenerContainer
DataAccessException
AbstractSpaceListeningContainer.onApplicationEvent(org.springframework.context.ApplicationEvent)
protected void validateConfiguration()
AbstractSpaceListeningContainer
validateConfiguration
in class AbstractTransactionalEventListenerContainer
protected EventSessionFactory createEventSessionFactory()
protected EventSessionConfig createEventSessionConfig() throws IllegalArgumentException
EventSessionConfig
based on the different
parameters this container accepts.
IllegalArgumentException
protected DataEventSession createDataEventSession(EventSessionFactory factory) throws DataAccessException
DataEventSession
based on the provided factory.
Uses createEventSessionConfig()
in order to create the session configuration.
DataAccessException
protected void registerListener(DataEventSession dataEventSession, net.jini.core.event.RemoteEventListener listener) throws NotifyListenerRegistrationException
DataEventSession
and
based on different parameters set on this container.
NotifyListenerRegistrationException
protected void invokeListenerWithTransaction(com.gigaspaces.events.batching.BatchRemoteEvent batchRemoteEvent, boolean performTakeOnNotify, boolean ignoreEventOnNullTake) throws DataAccessException
DataAccessException
protected void invokeListenerWithTransaction(Object eventData, Object source, boolean performTakeOnNotify, boolean ignoreEventOnNullTake) throws DataAccessException
AbstractTransactionalEventListenerContainer.setTransactionManager(PlatformTransactionManager)
is provided will perform the listener execution within a transaction, if not, the listener
execution is performed without a transaction.
If the performTakeOnNotify flag is set to true
will also perform take
operation with the given event data (i.e. remove it from the space).
eventData
- The event data objectsource
- The remote notify eventperformTakeOnNotify
- A flag indicating whether to perform take operation with the given event data
DataAccessException
|
GigaSpaces XAP 7.0 API | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |