Class XAJmsConsumer
- java.lang.Object
-
- com.adaptris.core.AdaptrisMessageWorkerImp
-
- com.adaptris.core.AdaptrisMessageConsumerImp
-
- com.adaptris.xa.jms.XAJmsConsumerImpl
-
- com.adaptris.xa.jms.XAJmsConsumer
-
- All Implemented Interfaces:
AdaptrisComponent,AdaptrisMessageConsumer,AdaptrisMessageWorker,ComponentLifecycle,ComponentLifecycleExtension,JmsActorConfig,LicensedComponent,MessageEventGenerator,StateManagedComponent
- Direct Known Subclasses:
XAJmsConsumerAsync
@ComponentProfile(summary="Listen for JMS messages on the specified queue or topic", tag="consumer,jms", recommended=com.adaptris.xa.jms.XAJmsConnection.class) public class XAJmsConsumer extends XAJmsConsumerImplJMS Consumer implementation that can target queues or topics via an RFC6167 style destination.This differs from the standard
PtpConsumerandPasConsumerin that it supports a destination that is specified in RFC6167 style. For instancejms:queue:myQueueNamewill consume from a queue calledmyQueueNameandjms:topic:myTopicNamefrom a topic calledmyTopicNameWhile RFC6167 defines the ability to use jndi to lookup the (as part of the 'jndi' variant section); this is not supported. There is also support for
For instance you could have the following destinations:subscriptionIdwhich indicates the subscriptionId that should be used when attaching a subscriber to a topic;jms:topic:MyTopicName?subscriptionId=myIdwould return aJmsDestination.subscriptionId()ofmyId. If a subscription ID is not specified, then a durable subscriber is never created; specifying a subscription ID automatically means a durable subscriber.- jms:queue:MyQueueName
- jms:topic:MyTopicName
- jms:topic:MyTopicName?subscriptionId=mySubscriptionId
Additionally this consumer uses a transaction manager to perform a two-phase commit for each transaction.
The transaction size is determined by the max-batch property. If set to 200 for example, then this consumer will attempt to commit an entire batch of 200 messages, once each has been processed. If however there are less than 200 messages on the JMS endpoint to consume and process, then this consumer will commit as many as it can consume before starting another transaction.
In the adapter configuration file this class is aliased as xa-jms-consumer which is the preferred alternative to the fully qualified classname when building your configuration.
-
-
Field Summary
-
Fields inherited from class com.adaptris.xa.jms.XAJmsConsumerImpl
consumeLock, consumer, currentTxId, executor, pollerTask, session
-
Fields inherited from class com.adaptris.core.AdaptrisMessageWorkerImp
log
-
-
Constructor Summary
Constructors Constructor Description XAJmsConsumer()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected javax.jms.MessageConsumercreateConsumer()-
Methods inherited from class com.adaptris.xa.jms.XAJmsConsumerImpl
beginTransaction, close, commitTransaction, commitTransaction, configuredAcknowledgeMode, configuredCorrelationIdSource, configuredMessageListener, configuredMessageTranslator, consumeLocationKey, currentLogger, currentSession, endpoint, getConsumer, getCorrelationIdSource, getEndpoint, getGlobalLock, getMaxBatch, getMaxTransactionTime, getMessageSelector, getMessagesInCurrentTransaction, getMessageTranslator, getOnMessageHandler, getReceiveWait, getRecreateConsumerOnError, getTransactionManager, getXaExceptionHandler, getXaResourceName, globalLock, handleException, handleXAException, init, isEnabled, isManagedTransaction, messageSelector, newThreadName, prepare, processXAMessages, rollbackIfRequired, rollbackTimeout, rollbackTransaction, setConsumer, setCorrelationIdSource, setEndpoint, setGlobalLock, setMaxBatch, setMaxTransactionTime, setMessageSelector, setMessagesInCurrentTransaction, setMessageTranslator, setOnMessageHandler, setReceiveWait, setRecreateConsumerOnError, setTransactionManager, setXaExceptionHandler, setXaResourceName, start, startProcessing, stop, withEndpoint
-
Methods inherited from class com.adaptris.core.AdaptrisMessageConsumerImp
changeState, registerAdaptrisMessageListener, renameThread, requestClose, requestInit, requestStart, requestStop, retrieveAdaptrisMessageListener, retrieveComponentState
-
Methods inherited from class com.adaptris.core.AdaptrisMessageWorkerImp
createName, createQualifier, decode, encode, getEncoder, getIsTrackingEndpoint, getMessageFactory, getUniqueId, handleConnectionException, isTrackingEndpoint, registerConnection, registerEncoderMessageFactory, retrieveConnection, setEncoder, setIsTrackingEndpoint, setMessageFactory, setUniqueId, withMessageFactory, withUniqueID
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.adaptris.core.AdaptrisComponent
getUniqueId
-
Methods inherited from interface com.adaptris.core.AdaptrisMessageWorker
decode, encode, getEncoder, getMessageFactory, handleConnectionException, registerConnection, retrieveConnection, setEncoder, setMessageFactory
-
Methods inherited from interface com.adaptris.core.MessageEventGenerator
createName, createQualifier, isTrackingEndpoint
-
-
-
-
Method Detail
-
createConsumer
protected javax.jms.MessageConsumer createConsumer() throws javax.jms.JMSException, CoreException- Specified by:
createConsumerin classXAJmsConsumerImpl- Throws:
javax.jms.JMSExceptionCoreException
-
-