@ComponentProfile(summary="Pickup messages from a JMS broker (queue or topic) by actively polling it", tag="consumer,jms", recommended=JmsConnection.class) public class JmsSyncConsumer extends BaseJmsPollingConsumerImpl
For instance
jms:queue:myQueueName
will consume from a queue called myQueueName
and
jms:topic:myTopicName
from a topic called myTopicName
While 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 subscriptionId
which indicates the subscriptionId that should be used when attaching a subscriber to
a topic; jms:topic:MyTopicName?subscriptionId=myId
would return a JmsDestination.subscriptionId()
of
myId
. If a subscription ID is not specified, then a durable subscriber is never created; specifying a subscription ID
automatically means a durable subscriber.
Also supported is the JMS 2.0 sharedConsumerId, should you wish to create a multiple load balancing consumers on a single topic endpoint;
jms:topic:MyTopicName?sharedConsumerId=12345
In the adapter configuration file this class is aliased as jms-poller which is the preferred alternative to the fully qualified classname when building your configuration.
AdaptrisPollingConsumer.LockOperator
log
Constructor and Description |
---|
JmsSyncConsumer() |
Modifier and Type | Method and Description |
---|---|
protected javax.jms.MessageConsumer |
createConsumer() |
protected javax.jms.Session |
createSession(int acknowledgeMode,
boolean transacted) |
org.slf4j.Logger |
currentLogger()
Return the configured logger.
|
protected java.lang.Boolean |
deferConsumerCreationToVendor() |
protected java.lang.String |
endpoint() |
java.lang.Boolean |
getDeferConsumerCreationToVendor()
Set to true if you wish to let the JMS message consumer be delegated by the configured vendor implementation.
|
@NonNull java.lang.String |
getEndpoint()
The RFC6167 format topic/queue.
|
void |
init()
Initialises the component.
|
protected java.lang.String |
messageSelector() |
protected java.lang.String |
newThreadName() |
protected void |
prepareConsumer() |
protected int |
processMessages()
Implemented by protocol-specific sub-classes.
|
void |
setDeferConsumerCreationToVendor(java.lang.Boolean deferConsumerCreationToVendor)
Set to true if you wish to let the JMS message consumer be delegated by the configured vendor implementation.
|
void |
setEndpoint(@NonNull java.lang.String endpoint)
The RFC6167 format topic/queue.
|
JmsSyncConsumer |
withEndpoint(java.lang.String s) |
close, closeMessageConsumer, closeSession, configuredAcknowledgeMode, configuredCorrelationIdSource, configuredMessageListener, configuredMessageTranslator, consumeLocationKey, currentSession, doProcessMessage, getAcknowledgeMode, getCorrelationIdSource, getMessageSelector, getMessageTranslator, getReceiveTimeout, initConsumer, initSession, isManagedTransaction, messageConsumer, messageHandler, rollbackTimeout, setAcknowledgeMode, setCorrelationIdSource, setManagedTransaction, setMessageSelector, setMessageTranslator, setReceiveTimeout
continueProcessingMessages, getMaxMessagesPerPoll, getPoller, getReacquireLockBetweenMessages, prepare, releaseLock, setMaxMessagesPerPoll, setPoller, setReacquireLockBetweenMessages, start, stop
changeState, registerAdaptrisMessageListener, renameThread, requestClose, requestInit, requestStart, requestStop, retrieveAdaptrisMessageListener, retrieveComponentState
createName, createQualifier, decode, encode, getEncoder, getIsTrackingEndpoint, getMessageFactory, getUniqueId, handleConnectionException, isTrackingEndpoint, registerConnection, registerEncoderMessageFactory, retrieveConnection, setEncoder, setIsTrackingEndpoint, setMessageFactory, setUniqueId, withMessageFactory, withUniqueID
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
decode, encode, getEncoder, getMessageFactory, handleConnectionException, registerConnection, retrieveConnection, setEncoder, setMessageFactory
getUniqueId
createName, createQualifier, isTrackingEndpoint
public JmsSyncConsumer withEndpoint(java.lang.String s)
public org.slf4j.Logger currentLogger()
JmsActorConfig
public void init() throws CoreException
ComponentLifecycle
Component initialisation includes config verification, creation of connections etc.
init
in interface ComponentLifecycle
init
in class BaseJmsPollingConsumerImpl
CoreException
- wrapping any underlying Exception
sComponentLifecycle.init()
protected javax.jms.MessageConsumer createConsumer() throws javax.jms.JMSException
createConsumer
in class BaseJmsPollingConsumerImpl
javax.jms.JMSException
protected int processMessages()
AdaptrisPollingConsumer
Implemented by protocol-specific sub-classes.
processMessages
in class AdaptrisPollingConsumer
protected void prepareConsumer() throws CoreException
prepareConsumer
in class AdaptrisPollingConsumer
CoreException
protected java.lang.String messageSelector()
protected java.lang.String endpoint()
protected java.lang.String newThreadName()
newThreadName
in class AdaptrisMessageConsumerImp
protected javax.jms.Session createSession(int acknowledgeMode, boolean transacted) throws javax.jms.JMSException
createSession
in class BaseJmsPollingConsumerImpl
javax.jms.JMSException
protected java.lang.Boolean deferConsumerCreationToVendor()
public java.lang.Boolean getDeferConsumerCreationToVendor()
The default is false such that we use standard JMS 1.1/2.0 methods to create the appropriate consumers.
public void setDeferConsumerCreationToVendor(java.lang.Boolean deferConsumerCreationToVendor)
The default is false such that we use standard JMS 1.1/2.0 methods to create the appropriate consumers.
@NonNull public @NonNull java.lang.String getEndpoint()
public void setEndpoint(@NonNull @NonNull java.lang.String endpoint)