public class SolQueueSession extends SolSession implements QueueSession
mConnectionConsumerSupport, mConnectionConsumerSupportRAAUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTEDConsumerDispatcherFactoryKey, TransactedSessionKey, XASessionKey| Constructor and Description |
|---|
SolQueueSession(SolConnectionIF connection,
boolean transacted,
int acknowledgeMode,
JMSState state) |
| Modifier and Type | Method and Description |
|---|---|
TopicSubscriber |
createDurableSubscriber(Topic topic,
String name)
Creates a durable subscriber to the specified topic.
|
TopicSubscriber |
createDurableSubscriber(Topic topic,
String name,
String messageSelector,
boolean noLocal)
Creates a durable subscriber to the specified topic, using a
message selector and specifying whether messages published by its
own connection should be delivered to it.
|
QueueReceiver |
createReceiver(Queue queue)
Creates a
QueueReceiver object to receive messages from the
specified queue. |
QueueReceiver |
createReceiver(Queue queue,
String messageSelector)
Creates a
QueueReceiver object to receive messages from the
specified queue using a message selector. |
QueueSender |
createSender(Queue queue)
Creates a
QueueSender object to send messages to the
specified queue. |
TemporaryTopic |
createTemporaryTopic()
Creates a
TemporaryTopic object. |
Topic |
createTopic(String topicName)
Creates a topic identity given a
Topic name. |
void |
unsubscribe(String name)
Unsubscribes a durable subscription that has been created by a client.
|
acknowledge, cancelSends, clearUnackedList, close, commit, createBrowser, createBrowser, createBytesMessage, createConsumer, createConsumer, createConsumer, createDefaultSubscriber, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createQueue, createStreamMessage, createTemporaryQueue, createTextMessage, createTextMessage, getAcknowledgeMode, getConnection, getConsumers, getMessageListener, getName, getProducers, getProperties, getState, getTransacted, isTemporaryQueueUsed, isTemporaryTopicUsed, loadFromConnectionConsumer, loadMessages, onMessageCreate, onMessageSent, recover, remove, remove, remove, rollback, run, setMessageListener, start, stopequals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcreateBrowser, createBrowser, createQueue, createTemporaryQueueclose, commit, createBytesMessage, createConsumer, createConsumer, createConsumer, createMapMessage, createMessage, createObjectMessage, createObjectMessage, createProducer, createStreamMessage, createTextMessage, createTextMessage, getAcknowledgeMode, getMessageListener, getTransacted, recover, rollback, run, setMessageListenerpublic SolQueueSession(SolConnectionIF connection, boolean transacted, int acknowledgeMode, JMSState state) throws JMSException
JMSExceptionpublic QueueReceiver createReceiver(Queue queue) throws JMSException
QueueSessionQueueReceiver object to receive messages from the
specified queue.createReceiver in interface QueueSessionqueue - the Queue to accessJMSException - if the session fails to create a receiver
due to some internal error.InvalidDestinationException - if an invalid queue is specified.public QueueReceiver createReceiver(Queue queue, String messageSelector) throws JMSException
QueueSessionQueueReceiver object to receive messages from the
specified queue using a message selector.createReceiver in interface QueueSessionqueue - the Queue to accessmessageSelector - only messages with properties matching the
message selector expression are delivered. A value of null or
an empty string indicates that there is no message selector
for the message consumer. Supported Since 4.6 SolOS-TR.JMSException - if the session fails to create a receiver
due to some internal error.InvalidDestinationException - if an invalid queue is specified.InvalidSelectorException - if the message selector is invalid.public QueueSender createSender(Queue queue) throws JMSException
QueueSessionQueueSender object to send messages to the
specified queue.createSender in interface QueueSessionqueue - the Queue to access, or null if this is an
unidentified producerJMSException - if the session fails to create a sender
due to some internal error.InvalidDestinationException - if an invalid queue is specified.public TopicSubscriber createDurableSubscriber(Topic topic, String name, String messageSelector, boolean noLocal) throws JMSException
SessionIf a client needs to receive all the messages published on a
topic, including the ones published while the subscriber is inactive,
it uses a durable TopicSubscriber. The JMS provider
retains a record of this
durable subscription and insures that all messages from the topic's
publishers are retained until they are acknowledged by this
durable subscriber or they have expired.
Sessions with durable subscribers must always provide the same
client identifier. In addition, each client must specify a name which
uniquely identifies (within client identifier) each durable
subscription it creates. Only one session at a time can have a
TopicSubscriber for a particular durable subscription.
An inactive durable subscriber is one that exists but
does not currently have a message consumer associated with it.
A client can change an existing durable subscription by creating
a durable TopicSubscriber with the same name and a new
topic and/or
message selector. Changing a durable subscriber is equivalent to
unsubscribing (deleting) the old one and creating a new one.
Dynamic durables can be enabled through the connection factory property in the JNDI, or overridden through the InitialContext environment usingSupportedProperty.SOLACE_JMS_DYNAMIC_DURABLESand a Boolean value. When enabled, calling this method will cause a durable topic endpoint of the name provided to be created on the appliance if it does not already exist. Any durable topic endpoint that is created will have its respect-ttl property set to the value of the respect-ttl connection factory property in the JNDI. This value can be overridden through the InitialContext environment usingSupportedProperty.SOLACE_JMS_RESPECT_TIME_TO_LIVEand a Boolean value. If the respect-ttl value differs from the respect-ttl property on an existing durable topic endpoint aConfigurationExceptionwill be thrown.
createDurableSubscriber in interface SessioncreateDurableSubscriber in class SolSessiontopic - the non-temporary Topic to subscribe toname - the name used to identify this subscription. A durable topic endpoint of
this name will be created on the appliance if dynamic durables is enabled and it doesn't
already exist.messageSelector - only messages with properties matching the
message selector expression are delivered. A value of null or
an empty string indicates that there is no message selector
for the message consumer. Supported Since 4.6 SolOS-TR.noLocal - if set, inhibits the delivery of messages published
by its own connection.
Supported Since 5.1 SolOS-TR.JMSException - if the session fails to create a subscriber
due to some internal error.InvalidDestinationException - if an invalid topic is specified.InvalidSelectorException - if the message selector is invalid.public TopicSubscriber createDurableSubscriber(Topic topic, String name) throws JMSException
SessionIf a client needs to receive all the messages published on a
topic, including the ones published while the subscriber is inactive,
it uses a durable TopicSubscriber. The JMS provider
retains a record of this
durable subscription and insures that all messages from the topic's
publishers are retained until they are acknowledged by this
durable subscriber or they have expired.
Sessions with durable subscribers must always provide the same
client identifier. In addition, each client must specify a name that
uniquely identifies (within client identifier) each durable
subscription it creates. Only one session at a time can have a
TopicSubscriber for a particular durable subscription.
A client can change an existing durable subscription by creating
a durable TopicSubscriber with the same name and a new
topic and/or
message selector. Changing a durable subscriber is equivalent to
unsubscribing (deleting) the old one and creating a new one.
In some cases, a connection may both publish and subscribe to a
topic. The subscriber NoLocal attribute allows a subscriber
to inhibit the delivery of messages published by its own connection.
The default value for this attribute is false.
Dynamic durables can be enabled through the connection factory property in the JNDI, or overridden through the InitialContext environment usingSupportedProperty.SOLACE_JMS_DYNAMIC_DURABLESand a Boolean value. When enabled, calling this method will cause a durable topic endpoint of the name provided to be created on the appliance if it does not already exist. Any durable topic endpoint that is created will have its respect-ttl property set to the value of the respect-ttl connection factory property in the JNDI. This value can be overridden through the InitialContext environment usingSupportedProperty.SOLACE_JMS_RESPECT_TIME_TO_LIVEand a Boolean value. If the respect-ttl value differs from the respect-ttl property on an existing durable topic endpoint aConfigurationExceptionwill be thrown.
createDurableSubscriber in interface SessioncreateDurableSubscriber in class SolSessiontopic - the non-temporary Topic to subscribe toname - the name used to identify this subscription. A durable topic endpoint of
this name will be created on the appliance if dynamic durables is enabled and it doesn't
already exist.JMSException - if the session fails to create a subscriber
due to some internal error.InvalidDestinationException - if an invalid topic is specified.public TemporaryTopic createTemporaryTopic() throws JMSException
SessionTemporaryTopic object. Its lifetime will be that
of the Connection unless it is deleted earlier.createTemporaryTopic in interface SessioncreateTemporaryTopic in class SolSessionJMSException - if the session fails to create a temporary
topic due to some internal error.public Topic createTopic(String topicName) throws JMSException
SessionTopic name.
This facility is provided for the rare cases where clients need to dynamically manipulate topic identity. This allows the creation of a topic identity with a provider-specific name. Clients that depend on this ability are not portable.
Note that this method is not for creating the physical topic.
The physical creation of topics is an administrative task and is not
to be initiated by the JMS API. The one exception is the
creation of temporary topics, which is accomplished with the
createTemporaryTopic method.
createTopic in interface SessioncreateTopic in class SolSessiontopicName - the name of this TopicTopic with the given nameJMSException - if the session fails to create a topic
due to some internal error.public void unsubscribe(String name) throws JMSException
SessionThis method deletes the state being maintained on behalf of the subscriber by its provider.
It is erroneous for a client to delete a durable subscription
while there is an active MessageConsumer
or TopicSubscriber for the
subscription, or while a consumed message is part of a pending
transaction or has not been acknowledged in the session.
unsubscribe in interface Sessionunsubscribe in class SolSessionname - the name used to identify this subscriptionJMSException - if the session fails to unsubscribe to the
durable subscription due to some internal error.InvalidDestinationException - if an invalid subscription name
is specified.Copyright 2004-2019 Solace Corporation. All rights reserved.