public class JmsConnector
extends org.mule.transport.AbstractConnector
implements javax.jms.ExceptionListener
JmsConnector is a JMS 1.0.2b compliant connector that can be used
by a Mule endpoint. The connector supports all JMS functionality including topics
and queues, durable subscribers, acknowledgement modes and local transactions.
From 3.6, JMS Sessions and Producers are reused by default when an XAConnectionFactory isn't being
used and when the (default) JMS 1.1 spec is being used.| Modifier and Type | Field and Description |
|---|---|
static String |
JMS |
String |
password |
static int |
REDELIVERY_FAIL_ON_FIRST
Indicates that Mule should throw an exception on any redelivery attempt.
|
static int |
REDELIVERY_IGNORE |
String |
username |
createMultipleTransactedReceivers, DEFAULT_NUM_CONCURRENT_TX_RECEIVERS, dispatcherFactory, dispatcherPoolFactory, dispatchers, initialStateStopped, lifecycleManager, logger, muleContext, muleMessageFactory, name, numberOfConcurrentTransactedReceivers, PROPERTY_POLLING_FREQUENCY, receivers, requesterFactory, requesters, serviceDescriptor, serviceOverrides, sessionHandler, startOnConnect| Constructor and Description |
|---|
JmsConnector(org.mule.api.MuleContext context) |
| Modifier and Type | Method and Description |
|---|---|
void |
close(javax.jms.MessageConsumer consumer)
Closes the MessageConsumer
|
void |
close(javax.jms.MessageProducer producer)
Closes the MessageProducer
|
void |
close(javax.jms.Session session)
Closes the MuleSession
|
void |
close(javax.jms.TemporaryQueue tempQueue)
Closes the TemporaryQueue
|
void |
close(javax.jms.TemporaryTopic tempTopic)
Closes the TemporaryTopic
|
void |
closeQuietly(javax.jms.MessageConsumer consumer)
Closes the MessageConsumer without throwing an exception (an error message is
logged instead).
|
void |
closeQuietly(javax.jms.MessageProducer producer)
Closes the MessageProducer without throwing an exception (an error message is
logged instead).
|
void |
closeQuietly(javax.jms.Session session)
Closes the MuleSession without throwing an exception (an error message is logged
instead).
|
void |
closeQuietly(javax.jms.TemporaryQueue tempQueue)
Closes the TemporaryQueue without throwing an exception (an error message is
logged instead).
|
void |
closeQuietly(javax.jms.TemporaryTopic tempTopic)
Closes the TemporaryTopic without throwing an exception (an error message is
logged instead).
|
void |
closeSessionIfNoTransactionActive(javax.jms.Session session)
Closes a session if there is no active transaction in the current thread, otherwise the
session will continue active until there is a direct call to close it.
|
void |
connect() |
protected javax.jms.Connection |
createConnection() |
protected javax.jms.ConnectionFactory |
createConnectionFactory() |
protected JmsSupport |
createJmsSupport()
A factory method to create various JmsSupport class versions.
|
protected javax.jms.Session |
createOperationResource(org.mule.api.endpoint.ImmutableEndpoint endpoint) |
javax.jms.Session |
createSession(org.mule.api.endpoint.ImmutableEndpoint endpoint) |
protected void |
doConnect() |
protected void |
doDisconnect() |
protected void |
doDispose() |
protected void |
doInitialise() |
protected void |
doStart() |
protected void |
doStop() |
int |
getAcknowledgementMode() |
String |
getClientId() |
javax.jms.Connection |
getConnection() |
javax.jms.ConnectionFactory |
getConnectionFactory() |
String |
getConnectionFactoryJndiName() |
Map |
getConnectionFactoryProperties() |
protected javax.jms.ConnectionFactory |
getDefaultConnectionFactory()
Override this method to provide a default ConnectionFactory for a vendor-specific JMS Connector.
|
JmsSupport |
getJmsSupport() |
String |
getJndiInitialFactory()
Deprecated.
use a
JndiNameResolver instead of access this property |
JndiNameResolver |
getJndiNameResolver() |
Map |
getJndiProviderProperties()
Deprecated.
use a
JndiNameResolver instead of access this property |
String |
getJndiProviderUrl()
Deprecated.
use a
JndiNameResolver instead of access this property |
int |
getMaxRedelivery() |
int |
getNumberOfConsumers()
A synonym for
AbstractConnector.numberOfConcurrentTransactedReceivers. |
protected Object |
getOperationResourceFactory() |
String |
getPassword() |
String |
getProtocol() |
protected Object |
getReceiverKey(org.mule.api.construct.FlowConstruct flowConstruct,
org.mule.api.endpoint.InboundEndpoint endpoint) |
RedeliveryHandlerFactory |
getRedeliveryHandlerFactory() |
org.mule.api.transport.ReplyToHandler |
getReplyToHandler(org.mule.api.endpoint.ImmutableEndpoint endpoint) |
Boolean |
getSameRMOverrideValue() |
JmsSelectorFilter |
getSelector(org.mule.api.endpoint.ImmutableEndpoint endpoint) |
javax.jms.Session |
getSession(boolean transacted,
boolean topic) |
javax.jms.Session |
getSession(org.mule.api.endpoint.ImmutableEndpoint endpoint) |
javax.jms.Session |
getSessionFromTransaction() |
String |
getSpecification() |
JmsTopicResolver |
getTopicResolver()
Getter for property 'topicResolver'.
|
String |
getUsername() |
boolean |
isCacheJmsSessions() |
boolean |
isDisableTemporaryReplyToDestinations() |
boolean |
isDurable() |
boolean |
isEagerConsumer()
Getter for property 'eagerConsumer'.
|
boolean |
isEmbeddedMode() |
boolean |
isForceJndiDestinations() |
boolean |
isHonorQosHeaders()
Gets the value of
honorQosHeaders property. |
boolean |
isJndiDestinations() |
boolean |
isNoLocal() |
boolean |
isPersistentDelivery() |
boolean |
isResponseEnabled() |
boolean |
isReturnOriginalMessageAsReply() |
protected Object |
lookupFromJndi(String jndiName) |
void |
onException(javax.jms.JMSException jmsException) |
javax.jms.Message |
preProcessMessage(javax.jms.Message message,
javax.jms.Session session)
This method may be overridden in order to apply pre-processing to the message
as soon as it arrives.
|
void |
setAcknowledgementMode(int acknowledgementMode) |
void |
setCacheJmsSessions(boolean cacheJmsSessions) |
void |
setClientId(String clientId) |
protected void |
setConnection(javax.jms.Connection connection) |
void |
setConnectionFactory(javax.jms.ConnectionFactory connectionFactory) |
void |
setConnectionFactoryJndiName(String connectionFactoryJndiName) |
void |
setConnectionFactoryProperties(Map connectionFactoryProperties) |
void |
setDisableTemporaryReplyToDestinations(boolean disableTemporaryReplyToDestinations) |
void |
setDurable(boolean durable) |
void |
setEagerConsumer(boolean eagerConsumer)
A value of
true will create a consumer on
connect, in contrast to lazy instantiation in the poll loop. |
void |
setEmbeddedMode(boolean embeddedMode) |
void |
setForceJndiDestinations(boolean forceJndiDestinations) |
void |
setHonorQosHeaders(boolean honorQosHeaders)
Sets the
honorQosHeaders property, which determines whether
JmsMessageDispatcher should honor incoming message's QoS headers
(JMSPriority, JMSDeliveryMode). |
void |
setJmsSupport(JmsSupport jmsSupport) |
void |
setJndiDestinations(boolean jndiDestinations) |
void |
setJndiInitialFactory(String jndiInitialFactory)
Deprecated.
use a
JndiNameResolver instead of access this property |
void |
setJndiNameResolver(JndiNameResolver jndiNameResolver) |
void |
setJndiProviderProperties(Map jndiProviderProperties)
Deprecated.
use a
JndiNameResolver instead of access this property |
void |
setJndiProviderUrl(String jndiProviderUrl)
Deprecated.
use a
JndiNameResolver instead of access this property |
void |
setMaxRedelivery(int maxRedelivery) |
void |
setNoLocal(boolean noLocal) |
void |
setNumberOfConsumers(int count)
A synonym for
AbstractConnector.numberOfConcurrentTransactedReceivers. |
void |
setPassword(String password) |
void |
setPersistentDelivery(boolean persistentDelivery) |
void |
setRedeliveryHandlerFactory(RedeliveryHandlerFactory redeliveryHandlerFactory) |
void |
setReturnOriginalMessageAsReply(boolean returnOriginalMessageAsReply) |
void |
setSameRMOverrideValue(Boolean sameRMOverrideValue) |
void |
setSpecification(String specification) |
void |
setTopicResolver(JmsTopicResolver topicResolver)
Setter for property 'topicResolver'.
|
void |
setUsername(String username) |
boolean |
supportsProperty(String property)
This method may be overridden in case a certain JMS implementation does not
support all the standard JMS properties.
|
borrowDispatcher, clearDispatchers, clearRequesters, configureDispatcherPool, createDefaultRedeliveryPolicy, createDispatcherMessageProcessor, createMuleMessageFactory, createReceiver, createScheduler, destroyReceiver, disconnect, dispose, disposeReceivers, disposeWorkManagers, doUnregisterListener, fireNotification, getCanonicalURI, getConnectEventId, getConnectionDescription, getDefaultExchangePattern, getDefaultInboundTransformers, getDefaultOutboundTransformers, getDefaultResponseTransformers, getDispatcherFactory, getDispatcherPoolFactory, getDispatcherThreadingProfile, getDispatcherWorkManager, getInboundExchangePatterns, getLifecycleState, getMaxDispatchersActive, getMaxRequestersActive, getMaxTotalDispatchers, getMuleContext, getMuleMessageFactory, getName, getNumberOfConcurrentTransactedReceivers, getOutboundExchangePatterns, getOutputStream, getReceiver, getReceivers, getReceivers, getReceiverThreadingProfile, getReceiverWorkManager, getRequesterFactory, getRequesterThreadingProfile, getRequesterWorkManager, getRetryPolicyTemplate, getScheduler, getServiceDescriptor, getServiceOverrides, getSessionHandler, getSupportedProtocols, getTransactionalResource, handleWorkException, initFromServiceDescriptor, initialise, initialiseFromUrl, initWorkManagers, isConnected, isConnecting, isCreateMultipleTransactedReceivers, isDisposed, isEnableMessageEvents, isInitialised, isInitialStateStopped, isStarted, isStarting, isStopped, isStopping, isValidateConnections, lookupReceiver, registerListener, registerSupportedMetaProtocol, registerSupportedProtocol, registerSupportedProtocolWithoutPrefix, request, request, returnDispatcher, setConnected, setConnecting, setCreateMultipleTransactedReceivers, setDispatcherFactory, setDispatcherPoolFactory, setDispatcherPoolMaxWait, setDispatcherPoolWhenExhaustedAction, setDispatcherThreadingProfile, setDynamicNotification, setInitialStateStopped, setMaxDispatchersActive, setMaxRequestersActive, setName, setNumberOfConcurrentTransactedReceivers, setReceiverThreadingProfile, setRequesterFactory, setRequesterPoolMaxWait, setRequesterPoolWhenExhaustedAction, setRequesterThreadingProfile, setRetryPolicyTemplate, setServiceOverrides, setSessionHandler, setSupportedProtocols, setupDispatchReturn, setupRequestReturn, setValidateConnections, shutdownScheduler, start, startAfterConnect, stop, supportsProtocol, toString, unregisterListener, unregisterSupportedProtocol, updateCachedNotificationHandler, validateConnection, workAccepted, workCompleted, workRejected, workStartedpublic static final String JMS
public static final int REDELIVERY_FAIL_ON_FIRST
public static final int REDELIVERY_IGNORE
public String username
public String password
public String getProtocol()
getProtocol in interface org.mule.api.transport.Connectorprotected void doInitialise()
throws org.mule.api.lifecycle.InitialisationException
doInitialise in class org.mule.transport.AbstractConnectororg.mule.api.lifecycle.InitialisationExceptionprotected JmsSupport createJmsSupport()
JmsSupportprotected javax.jms.ConnectionFactory createConnectionFactory()
throws NamingException,
org.mule.api.MuleException
NamingExceptionorg.mule.api.MuleExceptionprotected javax.jms.ConnectionFactory getDefaultConnectionFactory()
throws Exception
Exceptionprotected void doDispose()
doDispose in class org.mule.transport.AbstractConnectorprotected Object lookupFromJndi(String jndiName) throws NamingException
NamingExceptionprotected javax.jms.Connection createConnection()
throws org.mule.api.MuleException,
javax.jms.JMSException
org.mule.api.MuleExceptionjavax.jms.JMSExceptionpublic void connect()
throws Exception
connect in interface org.mule.api.transport.Connectableconnect in class org.mule.transport.AbstractConnectorExceptionpublic void onException(javax.jms.JMSException jmsException)
onException in interface javax.jms.ExceptionListenerprotected void doConnect()
throws Exception
doConnect in class org.mule.transport.AbstractConnectorExceptionprotected void doDisconnect()
throws Exception
doDisconnect in class org.mule.transport.AbstractConnectorExceptionprotected Object getReceiverKey(org.mule.api.construct.FlowConstruct flowConstruct, org.mule.api.endpoint.InboundEndpoint endpoint)
getReceiverKey in class org.mule.transport.AbstractConnectorpublic javax.jms.Session getSessionFromTransaction()
public javax.jms.Session getSession(org.mule.api.endpoint.ImmutableEndpoint endpoint)
throws javax.jms.JMSException
javax.jms.JMSExceptionpublic javax.jms.Session createSession(org.mule.api.endpoint.ImmutableEndpoint endpoint)
throws javax.jms.JMSException
javax.jms.JMSExceptionpublic javax.jms.Session getSession(boolean transacted,
boolean topic)
throws javax.jms.JMSException
javax.jms.JMSExceptionprotected void doStart()
throws org.mule.api.MuleException
doStart in class org.mule.transport.AbstractConnectororg.mule.api.MuleExceptionpublic void closeSessionIfNoTransactionActive(javax.jms.Session session)
session - the session that ill be closed if there is an active transaction.protected void doStop()
throws org.mule.api.MuleException
doStop in class org.mule.transport.AbstractConnectororg.mule.api.MuleExceptionpublic org.mule.api.transport.ReplyToHandler getReplyToHandler(org.mule.api.endpoint.ImmutableEndpoint endpoint)
getReplyToHandler in class org.mule.transport.AbstractConnectorpublic boolean supportsProperty(String property)
public javax.jms.Message preProcessMessage(javax.jms.Message message,
javax.jms.Session session)
throws Exception
message - - the incoming messagesession - - the JMS sessionExceptionpublic void close(javax.jms.MessageProducer producer)
throws javax.jms.JMSException
producer - javax.jms.JMSExceptionpublic void closeQuietly(javax.jms.MessageProducer producer)
producer - public void close(javax.jms.MessageConsumer consumer)
throws javax.jms.JMSException
consumer - javax.jms.JMSExceptionpublic void closeQuietly(javax.jms.MessageConsumer consumer)
consumer - public void close(javax.jms.Session session)
throws javax.jms.JMSException
session - javax.jms.JMSExceptionpublic void closeQuietly(javax.jms.Session session)
session - public void close(javax.jms.TemporaryQueue tempQueue)
throws javax.jms.JMSException
tempQueue - javax.jms.JMSExceptionpublic void closeQuietly(javax.jms.TemporaryQueue tempQueue)
tempQueue - public void close(javax.jms.TemporaryTopic tempTopic)
throws javax.jms.JMSException
tempTopic - javax.jms.JMSExceptionpublic void closeQuietly(javax.jms.TemporaryTopic tempTopic)
tempTopic - public javax.jms.Connection getConnection()
protected void setConnection(javax.jms.Connection connection)
public int getAcknowledgementMode()
public void setAcknowledgementMode(int acknowledgementMode)
acknowledgementMode - The acknowledgementMode to set.public boolean isDurable()
public void setDurable(boolean durable)
durable - The durable to set.public boolean isNoLocal()
public void setNoLocal(boolean noLocal)
noLocal - The noLocal to set.public boolean isPersistentDelivery()
public void setPersistentDelivery(boolean persistentDelivery)
persistentDelivery - The persistentDelivery to set.public JmsSupport getJmsSupport()
public void setJmsSupport(JmsSupport jmsSupport)
public String getSpecification()
public void setSpecification(String specification)
public String getUsername()
public void setUsername(String username)
public String getPassword()
public void setPassword(String password)
public String getClientId()
public void setClientId(String clientId)
public int getMaxRedelivery()
public void setMaxRedelivery(int maxRedelivery)
public boolean isResponseEnabled()
isResponseEnabled in interface org.mule.api.transport.ConnectorisResponseEnabled in class org.mule.transport.AbstractConnectorpublic JmsTopicResolver getTopicResolver()
public void setTopicResolver(JmsTopicResolver topicResolver)
topicResolver - Value to set for property 'topicResolver'.public boolean isEagerConsumer()
true.eagerConsumerpublic void setEagerConsumer(boolean eagerConsumer)
true will create a consumer on
connect, in contrast to lazy instantiation in the poll loop.
This setting very much depends on the JMS vendor.
Affects transactional receivers, typical symptoms are:
eagerConsumer - Value to set for property 'eagerConsumer'.eagerConsumer,
XaTransactedJmsMessageReceiverpublic boolean isCacheJmsSessions()
public void setCacheJmsSessions(boolean cacheJmsSessions)
cacheJmsSessions - true if session should be enabledpublic javax.jms.ConnectionFactory getConnectionFactory()
public void setConnectionFactory(javax.jms.ConnectionFactory connectionFactory)
public RedeliveryHandlerFactory getRedeliveryHandlerFactory()
public void setRedeliveryHandlerFactory(RedeliveryHandlerFactory redeliveryHandlerFactory)
public void setHonorQosHeaders(boolean honorQosHeaders)
honorQosHeaders property, which determines whether
JmsMessageDispatcher should honor incoming message's QoS headers
(JMSPriority, JMSDeliveryMode).honorQosHeaders - true if JmsMessageDispatcher
should honor incoming message's QoS headers; otherwise
false Default is false, meaning that
connector settings will override message headers.public boolean isHonorQosHeaders()
honorQosHeaders property.true if JmsMessageDispatcher should
honor incoming message's QoS headers; otherwise false
Default is false, meaning that connector settings will
override message headers.@Deprecated public String getJndiInitialFactory()
JndiNameResolver instead of access this property@Deprecated public void setJndiInitialFactory(String jndiInitialFactory)
JndiNameResolver instead of access this property@Deprecated public String getJndiProviderUrl()
JndiNameResolver instead of access this property@Deprecated public void setJndiProviderUrl(String jndiProviderUrl)
JndiNameResolver instead of access this property@Deprecated public Map getJndiProviderProperties()
JndiNameResolver instead of access this property@Deprecated public void setJndiProviderProperties(Map jndiProviderProperties)
JndiNameResolver instead of access this propertypublic JndiNameResolver getJndiNameResolver()
public void setJndiNameResolver(JndiNameResolver jndiNameResolver)
public String getConnectionFactoryJndiName()
public void setConnectionFactoryJndiName(String connectionFactoryJndiName)
public boolean isJndiDestinations()
public void setJndiDestinations(boolean jndiDestinations)
public boolean isForceJndiDestinations()
public void setForceJndiDestinations(boolean forceJndiDestinations)
public boolean isDisableTemporaryReplyToDestinations()
public void setDisableTemporaryReplyToDestinations(boolean disableTemporaryReplyToDestinations)
public boolean isReturnOriginalMessageAsReply()
public void setReturnOriginalMessageAsReply(boolean returnOriginalMessageAsReply)
public Map getConnectionFactoryProperties()
public void setConnectionFactoryProperties(Map connectionFactoryProperties)
connectionFactoryProperties - properties to be set on the underlying
ConnectionFactory.public void setNumberOfConsumers(int count)
AbstractConnector.numberOfConcurrentTransactedReceivers. Note that
it affects both transactional and non-transactional scenarios.count - number of consumerspublic int getNumberOfConsumers()
AbstractConnector.numberOfConcurrentTransactedReceivers.public boolean isEmbeddedMode()
public void setEmbeddedMode(boolean embeddedMode)
public Boolean getSameRMOverrideValue()
public void setSameRMOverrideValue(Boolean sameRMOverrideValue)
public JmsSelectorFilter getSelector(org.mule.api.endpoint.ImmutableEndpoint endpoint)
protected javax.jms.Session createOperationResource(org.mule.api.endpoint.ImmutableEndpoint endpoint)
throws org.mule.api.MuleException
createOperationResource in class org.mule.transport.AbstractConnectororg.mule.api.MuleExceptionprotected Object getOperationResourceFactory()
getOperationResourceFactory in class org.mule.transport.AbstractConnectorCopyright © 2003–2015 MuleSoft, Inc.. All rights reserved.