org.springframework.batch.container.jms
Class BatchMessageListenerContainer
java.lang.Object
org.springframework.jms.support.JmsAccessor
org.springframework.jms.support.destination.JmsDestinationAccessor
org.springframework.jms.listener.AbstractJmsListeningContainer
org.springframework.jms.listener.AbstractMessageListenerContainer
org.springframework.jms.listener.AbstractPollingMessageListenerContainer
org.springframework.jms.listener.DefaultMessageListenerContainer
org.springframework.batch.container.jms.BatchMessageListenerContainer
- All Implemented Interfaces:
- BeanNameAware, DisposableBean, InitializingBean, Lifecycle
public class BatchMessageListenerContainer
- extends DefaultMessageListenerContainer
Message listener container adapted for intercepting the message reception
with advice provided through configuration.
To enable batching of messages in a single transaction, use the
TransactionInterceptor
and the RepeatOperationsInterceptor
in
the advice chain (with or without a transaction manager set in the base
class). Instead of receiving a single message and processing it, the
container will then use a RepeatOperations
to receive multiple
messages in the same thread. Use with a RepeatOperations
and a
transaction interceptor. If the transaction interceptor uses XA then use an
XA connection factory, or else the
TransactionAwareConnectionFactoryProxy
to synchronize the JMS session
with the ongoing transaction (opening up the possibility of duplicate
messages after a failure). In the latter case you will not need to provide a
transaction manager in the base class - it only gets on the way and prevents
the JMS session from synchronizing with the database transaction.
- Author:
- Dave Syer
Methods inherited from class org.springframework.jms.listener.DefaultMessageListenerContainer |
createDefaultTaskExecutor, doInitialize, doRescheduleTask, doShutdown, establishSharedConnection, getActiveConsumerCount, getCacheLevel, getConcurrentConsumers, getIdleTaskExecutionLimit, getMaxConcurrentConsumers, getMaxMessagesPerTask, getScheduledConsumerCount, handleListenerSetupFailure, initialize, messageReceived, noMessageReceived, recoverAfterListenerSetupFailure, refreshConnectionUntilSuccessful, refreshDestination, scheduleNewInvokerIfAppropriate, setCacheLevel, setCacheLevelName, setConcurrentConsumers, setIdleTaskExecutionLimit, setMaxConcurrentConsumers, setMaxMessagesPerTask, setRecoveryInterval, setTaskExecutor, sharedConnectionEnabled, sleepInbetweenRecoveryAttempts, start, startSharedConnection, stop, stopSharedConnection, validateConfiguration |
Methods inherited from class org.springframework.jms.listener.AbstractPollingMessageListenerContainer |
createConsumer, createListenerConsumer, doReceiveAndExecute, getConnection, getSession, getTransactionManager, isPubSubNoLocal, isSessionLocallyTransacted, receiveMessage, setPubSubNoLocal, setReceiveTimeout, setSessionTransacted, setTransactionManager, setTransactionName, setTransactionTimeout |
Methods inherited from class org.springframework.jms.listener.AbstractMessageListenerContainer |
checkMessageListener, commitIfNecessary, doExecuteListener, doInvokeListener, doInvokeListener, executeListener, getDefaultSubscriptionName, getDestination, getDestinationDescription, getDestinationName, getDurableSubscriptionName, getExceptionListener, getMessageListener, getMessageSelector, invokeExceptionListener, invokeListener, isAcceptMessagesWhileStopping, isExposeListenerSession, isSubscriptionDurable, rollbackIfNecessary, rollbackOnExceptionIfNecessary, setAcceptMessagesWhileStopping, setDestination, setDestinationName, setDurableSubscriptionName, setExceptionListener, setExposeListenerSession, setMessageListener, setMessageSelector, setSubscriptionDurable |
Methods inherited from class org.springframework.jms.listener.AbstractJmsListeningContainer |
createSharedConnection, destroy, doStart, doStop, getBeanName, getClientId, getPausedTaskCount, getSharedConnection, isActive, isRunning, logRejectedTask, prepareSharedConnection, refreshSharedConnection, rescheduleTaskIfNecessary, resumePausedTasks, runningAllowed, setAutoStartup, setBeanName, setClientId, shutdown, stop |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BatchMessageListenerContainer
public BatchMessageListenerContainer()
setAdviceChain
public void setAdviceChain(org.aopalliance.aop.Advice[] advices)
- Public setter for the
Advice
.
- Parameters:
advices
- the advice to set
afterPropertiesSet
public void afterPropertiesSet()
- Set up interceptor with provided advice on the
receiveAndExecute(Object, Session, MessageConsumer)
method.
- Specified by:
afterPropertiesSet
in interface InitializingBean
- Overrides:
afterPropertiesSet
in class AbstractJmsListeningContainer
- See Also:
AbstractJmsListeningContainer.afterPropertiesSet()
handleListenerException
protected void handleListenerException(Throwable ex)
- Override base class to prevent exceptions from being swallowed. Should be
an injectable strategy (see SPR-4733).
- Overrides:
handleListenerException
in class AbstractMessageListenerContainer
- See Also:
AbstractMessageListenerContainer.handleListenerException(java.lang.Throwable)
receiveAndExecute
protected boolean receiveAndExecute(Object invoker,
Session session,
MessageConsumer consumer)
throws JMSException
- Override base class method to wrap call in advice if provided.
- Overrides:
receiveAndExecute
in class AbstractPollingMessageListenerContainer
- Throws:
JMSException
- See Also:
AbstractPollingMessageListenerContainer.receiveAndExecute(Object,
javax.jms.Session, javax.jms.MessageConsumer)
initializeProxy
public void initializeProxy()
Copyright © 2010 SpringSource. All Rights Reserved.