org.objectweb.joram.client.jms
Class Session

java.lang.Object
  extended by org.objectweb.joram.client.jms.Session
All Implemented Interfaces:
java.lang.Runnable, javax.jms.Session
Direct Known Subclasses:
QueueSession, TopicSession

public class Session
extends java.lang.Object
implements javax.jms.Session

Implements the javax.jms.Session interface.

A Session object is a single-threaded context for producing and consuming messages. A session serves several purposes:

A session can create and service multiple message producers and consumers.


Field Summary
static org.objectweb.util.monolog.api.Logger logger
           
protected  javax.jms.MessageListener messageListener
          The message listener of the session, if any.
 
Fields inherited from interface javax.jms.Session
AUTO_ACKNOWLEDGE, CLIENT_ACKNOWLEDGE, DUPS_OK_ACKNOWLEDGE, SESSION_TRANSACTED
 
Method Summary
protected  void addConsumer(MessageConsumer mc)
          Called here and by sub-classes.
protected  void addProducer(MessageProducer mp)
          Called here and by sub-classes.
protected  void checkClosed()
          Checks if the session is closed.
 void close()
          Closes the session.
 void commit()
          API method.
 javax.jms.QueueBrowser createBrowser(javax.jms.Queue queue)
          Creates a QueueBrowser object to peek at the messages on the specified queue.
 javax.jms.QueueBrowser createBrowser(javax.jms.Queue queue, java.lang.String selector)
          Creates a QueueBrowser object to peek at the messages on the specified queue using a message selector.
 javax.jms.BytesMessage createBytesMessage()
          Creates a BytesMessage object.
 javax.jms.MessageConsumer createConsumer(javax.jms.Destination dest)
          Creates a MessageConsumer for the specified destination.
 javax.jms.MessageConsumer createConsumer(javax.jms.Destination dest, java.lang.String selector)
          Creates a MessageConsumer for the specified destination using a message selector.
 javax.jms.MessageConsumer createConsumer(javax.jms.Destination dest, java.lang.String selector, boolean noLocal)
          Creates a MessageConsumer for the specified destination using a message selector.
 javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic topic, java.lang.String name)
          Creates or retrieves a durable subscription with the specified name.
 javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic topic, java.lang.String name, java.lang.String selector, boolean noLocal)
          Creates or retrieves a durable subscription with the specified name.
 javax.jms.MapMessage createMapMessage()
          Creates a MapMessage object.
 javax.jms.Message createMessage()
          Creates a Message object.
 javax.jms.ObjectMessage createObjectMessage()
          Creates a ObjectMessage object.
 javax.jms.ObjectMessage createObjectMessage(java.io.Serializable obj)
          Creates a ObjectMessage object.
 javax.jms.MessageProducer createProducer(javax.jms.Destination dest)
          Creates a MessageProducer to send messages to the specified destination.
 javax.jms.Queue createQueue(java.lang.String name)
          This method allows to create or retrieve a Queue with the given name on the local server.
 javax.jms.StreamMessage createStreamMessage()
          Creates a StreamMessage object.
 javax.jms.TemporaryQueue createTemporaryQueue()
          API method.
 javax.jms.TemporaryTopic createTemporaryTopic()
          API method.
 javax.jms.TextMessage createTextMessage()
          Creates a TextMessage object.
 javax.jms.TextMessage createTextMessage(java.lang.String text)
          Creates a TextMessage object with the specified text.
 javax.jms.Topic createTopic(java.lang.String name)
          This method allows to create or retrieve a Topic with the given name on the local server.
 int getAcknowledgeMode()
          API method.
 javax.jms.MessageListener getMessageListener()
          API method.
 int getQueueMessageReadMax()
          Get the maximum number of messages that can be read at once from a queue for this Session.
 int getTopicAckBufferMax()
          Get the maximum number of acknowledgements that can be buffered when using Session.DUPS_OK_ACKNOWLEDGE mode for this session.
 int getTopicActivationThreshold()
          Get the threshold of activation for this session.
 int getTopicPassivationThreshold()
          Get the threshold of passivation for this session.
 boolean getTransacted()
          API method.
 boolean isAsyncSend()
          Indicates whether the messages produced are asynchronously sent or not (without or with acknowledgment).
 boolean isAsyncSub()
          Indicates whether the subscription request is asynchronously handled or not.
 boolean isAutoAck()
           
 boolean isImplicitAck()
          Indicates whether the messages consumed are implicitly acknowledged or not.
 void recover()
          API method.
 void rollback()
          API method.
 void run()
          API method.
 void setAsyncSend(boolean asyncSend)
          Sets asynchronously sending for this session.
 void setAsyncSub(boolean asyncSub)
          Sets asynchronous subscription for this session.
 void setImplicitAck(boolean implicitAck)
          Sets implicit acknowledge for this session.
 void setMessageListener(javax.jms.MessageListener messageListener)
          API method.
 void setQueueMessageReadMax(int queueMessageReadMax)
          Set the maximum number of messages that can be read at once from a queue for this Session.
 void setTopicAckBufferMax(int topicAckBufferMax)
          Set the maximum number of acknowledgements that can be buffered when using Session.DUPS_OK_ACKNOWLEDGE mode for this session.
 void setTopicActivationThreshold(int topicActivationThreshold)
          Set the threshold of activation for this session.
 void setTopicPassivationThreshold(int topicPassivationThreshold)
          Set the threshold of passivation for this session.
 void setTransacted(boolean t)
          set transacted.
 java.lang.String toString()
          Returns a String image of this session.
 void unsubscribe(java.lang.String name)
          API method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

logger

public static org.objectweb.util.monolog.api.Logger logger

messageListener

protected javax.jms.MessageListener messageListener
The message listener of the session, if any.

Method Detail

isImplicitAck

public boolean isImplicitAck()
Indicates whether the messages consumed are implicitly acknowledged or not. If true messages are immediately removed from queue when delivered.

This attribute is inherited from Connection at initialization, by default false.

Returns:
true if messages produced are implicitly acknowledged.
See Also:
implicitAck

setImplicitAck

public void setImplicitAck(boolean implicitAck)
Sets implicit acknowledge for this session.

Determines whether the messages produced are implicitly acknowledged or not. If set to true the messages are immediately removed from queue when delivered.

This attribute is inherited from Connection at initialization, by default false.

Parameters:
implicitAck - if true sets implicit acknowledge for this session.
See Also:
implicitAck

isAsyncSend

public boolean isAsyncSend()
Indicates whether the messages produced are asynchronously sent or not (without or with acknowledgment).

This attribute is inherited from Connection at initialization, by default false.

Returns:
true if messages produced are asynchronously sent.
See Also:
asyncSend

setAsyncSend

public void setAsyncSend(boolean asyncSend)
Sets asynchronously sending for this session.

Determines whether the messages produced are asynchronously sent or not (without or with acknowledgement).

This attribute is inherited from Connection at initialization, by default false.

Parameters:
asyncSend - if true sets asynchronous sending for this session.
See Also:
asyncSend

getQueueMessageReadMax

public final int getQueueMessageReadMax()
Get the maximum number of messages that can be read at once from a queue for this Session.

This attribute is inherited from Connection at initialization, default value is 1.

Returns:
The maximum number of messages that can be read at once from a queue.
See Also:
queueMessageReadMax

setQueueMessageReadMax

public void setQueueMessageReadMax(int queueMessageReadMax)
Set the maximum number of messages that can be read at once from a queue for this Session.

This attribute is inherited from Connection at initialization, default value is 1.

Parameters:
queueMessageReadMax - The maximum number of messages that can be read at once from a queue.
See Also:
queueMessageReadMax

getTopicAckBufferMax

public final int getTopicAckBufferMax()
Get the maximum number of acknowledgements that can be buffered when using Session.DUPS_OK_ACKNOWLEDGE mode for this session.

This attribute is inherited from Connection at initialization.

Returns:
The Maximum number of acknowledgements that can be buffered when using Session.DUPS_OK_ACKNOWLEDGE mode.
See Also:
FactoryParameters.topicAckBufferMax, topicAckBufferMax

setTopicAckBufferMax

public void setTopicAckBufferMax(int topicAckBufferMax)
Set the maximum number of acknowledgements that can be buffered when using Session.DUPS_OK_ACKNOWLEDGE mode for this session.

This attribute is inherited from Connection at initialization.

Parameters:
topicAckBufferMax - The Maximum number of acknowledgements that can be buffered in Session.DUPS_OK_ACKNOWLEDGE mode.
See Also:
FactoryParameters.topicAckBufferMax, topicAckBufferMax

getTopicPassivationThreshold

public final int getTopicPassivationThreshold()
Get the threshold of passivation for this session.

This threshold is the maximum messages number over which the subscription is passivated.

This attribute is inherited from Connection at initialization, default value is Integer.MAX_VALUE.

Returns:
The maximum messages number over which the subscription is passivated.
See Also:
topicPassivationThreshold

setTopicPassivationThreshold

public void setTopicPassivationThreshold(int topicPassivationThreshold)
Set the threshold of passivation for this session.

This threshold is the maximum messages number over which the subscription is passivated.

This attribute is inherited from Connection at initialization, default value is Integer.MAX_VALUE.

Parameters:
topicPassivationThreshold - The maximum messages number over which the subscription is passivated.
See Also:
topicPassivationThreshold

getTopicActivationThreshold

public final int getTopicActivationThreshold()
Get the threshold of activation for this session.

This threshold is the minimum messages number below which the subscription is activated.

This attribute is inherited from Connection at initialization, default value is 0.

Returns:
The minimum messages number below which the subscription is activated.
See Also:
topicActivationThreshold

setTopicActivationThreshold

public void setTopicActivationThreshold(int topicActivationThreshold)
Set the threshold of activation for this session.

This threshold is the minimum messages number below which the subscription is activated.

This attribute is inherited from Connection at initialization, default value is 0.

Parameters:
topicActivationThreshold - The minimum messages number below which the subscription is activated.
See Also:
topicActivationThreshold

isAsyncSub

public boolean isAsyncSub()
Indicates whether the subscription request is asynchronously handled or not.

Default value is false, the subscription is handled synchronously so the topic must be accessible.

Returns:
true if the subscription requests are asynchronously handled.

setAsyncSub

public void setAsyncSub(boolean asyncSub)
Sets asynchronous subscription for this session.

Determines whether the subscription request is asynchronously handled or not.

Default value is false, the subscription is handled synchronously so the topic must be accessible.

Parameters:
asyncSub - if true sets asynchronous subscription for this session.

checkClosed

protected void checkClosed()
                    throws javax.jms.IllegalStateException
Checks if the session is closed. If true, an IllegalStateException is raised.

Throws:
javax.jms.IllegalStateException

toString

public java.lang.String toString()
Returns a String image of this session.

Overrides:
toString in class java.lang.Object

getAcknowledgeMode

public final int getAcknowledgeMode()
                             throws javax.jms.JMSException
API method.

Specified by:
getAcknowledgeMode in interface javax.jms.Session
Throws:
javax.jms.JMSException - Actually never thrown.

getTransacted

public final boolean getTransacted()
                            throws javax.jms.JMSException
API method.

Specified by:
getTransacted in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

setTransacted

public void setTransacted(boolean t)
set transacted. see connector ManagedConnectionImpl (Connector).


setMessageListener

public void setMessageListener(javax.jms.MessageListener messageListener)
                        throws javax.jms.JMSException
API method.

Specified by:
setMessageListener in interface javax.jms.Session
Throws:
javax.jms.JMSException - Actually never thrown.

getMessageListener

public javax.jms.MessageListener getMessageListener()
                                             throws javax.jms.JMSException
API method.

Specified by:
getMessageListener in interface javax.jms.Session
Throws:
javax.jms.JMSException - Actually never thrown.

createMessage

public javax.jms.Message createMessage()
                                throws javax.jms.JMSException
Creates a Message object. API method.

Specified by:
createMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createTextMessage

public javax.jms.TextMessage createTextMessage()
                                        throws javax.jms.JMSException
Creates a TextMessage object. API method.

Specified by:
createTextMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createTextMessage

public javax.jms.TextMessage createTextMessage(java.lang.String text)
                                        throws javax.jms.JMSException
Creates a TextMessage object with the specified text. API method.

Specified by:
createTextMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createBytesMessage

public javax.jms.BytesMessage createBytesMessage()
                                          throws javax.jms.JMSException
Creates a BytesMessage object. API method.

Specified by:
createBytesMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createMapMessage

public javax.jms.MapMessage createMapMessage()
                                      throws javax.jms.JMSException
Creates a MapMessage object. API method.

Specified by:
createMapMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createObjectMessage

public javax.jms.ObjectMessage createObjectMessage()
                                            throws javax.jms.JMSException
Creates a ObjectMessage object. API method.

Specified by:
createObjectMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createObjectMessage

public javax.jms.ObjectMessage createObjectMessage(java.io.Serializable obj)
                                            throws javax.jms.JMSException
Creates a ObjectMessage object. API method.

Specified by:
createObjectMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createStreamMessage

public javax.jms.StreamMessage createStreamMessage()
                                            throws javax.jms.JMSException
Creates a StreamMessage object. API method.

Specified by:
createStreamMessage in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException

createBrowser

public javax.jms.QueueBrowser createBrowser(javax.jms.Queue queue,
                                            java.lang.String selector)
                                     throws javax.jms.JMSException
Creates a QueueBrowser object to peek at the messages on the specified queue using a message selector. API method

Specified by:
createBrowser in interface javax.jms.Session
Parameters:
queue - the queue to browse
selector - the expression allowing to filter messages
Throws:
javax.jms.IllegalStateException - if the session is closed.
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.InvalidSelectorException - if the message selector is invalid.
javax.jms.JMSException

createBrowser

public javax.jms.QueueBrowser createBrowser(javax.jms.Queue queue)
                                     throws javax.jms.JMSException
Creates a QueueBrowser object to peek at the messages on the specified queue. API method

Specified by:
createBrowser in interface javax.jms.Session
Parameters:
queue - the queue to browse
Throws:
javax.jms.IllegalStateException - if the session is closed.
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.JMSException

createProducer

public javax.jms.MessageProducer createProducer(javax.jms.Destination dest)
                                         throws javax.jms.JMSException
Creates a MessageProducer to send messages to the specified destination. API method.

Specified by:
createProducer in interface javax.jms.Session
Parameters:
dest - the Destination to send to, or null if this is a producer which does not have a specified destination.
Throws:
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the creation fails for any other reason.

createConsumer

public javax.jms.MessageConsumer createConsumer(javax.jms.Destination dest,
                                                java.lang.String selector,
                                                boolean noLocal)
                                         throws javax.jms.JMSException
Creates a MessageConsumer for the specified destination using a message selector. API method.

Specified by:
createConsumer in interface javax.jms.Session
Parameters:
dest - the Destination to send to, or null if this is a producer which does not have a specified destination.
Throws:
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the creation fails for any other reason.

createConsumer

public javax.jms.MessageConsumer createConsumer(javax.jms.Destination dest,
                                                java.lang.String selector)
                                         throws javax.jms.JMSException
Creates a MessageConsumer for the specified destination using a message selector. API method.

Specified by:
createConsumer in interface javax.jms.Session
Parameters:
dest - the Destination to send to, or null if this is a producer which does not have a specified destination.
selector - The selector allowing to filter messages.
Throws:
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the creation fails for any other reason.

createConsumer

public javax.jms.MessageConsumer createConsumer(javax.jms.Destination dest)
                                         throws javax.jms.JMSException
Creates a MessageConsumer for the specified destination. API method.

Specified by:
createConsumer in interface javax.jms.Session
Throws:
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the creation fails for any other reason.

createDurableSubscriber

public javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic topic,
                                                         java.lang.String name,
                                                         java.lang.String selector,
                                                         boolean noLocal)
                                                  throws javax.jms.JMSException
Creates or retrieves a durable subscription with the specified name. API method.

Specified by:
createDurableSubscriber in interface javax.jms.Session
Throws:
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the creation fails for any other reason.

createDurableSubscriber

public javax.jms.TopicSubscriber createDurableSubscriber(javax.jms.Topic topic,
                                                         java.lang.String name)
                                                  throws javax.jms.JMSException
Creates or retrieves a durable subscription with the specified name. API method.

Specified by:
createDurableSubscriber in interface javax.jms.Session
Throws:
javax.jms.InvalidDestinationException - if an invalid destination is specified.
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the creation fails for any other reason.

createQueue

public javax.jms.Queue createQueue(java.lang.String name)
                            throws javax.jms.JMSException
This method allows to create or retrieve a Queue with the given name on the local server. First a destination with the specified name is searched on the server, if it does not exist it is created. In any case a queue identity with its provider-specific address is returned.

If the given name is a provider-specific name (#x.y.z unique identifier) a queue identity is returned with the specified identifier.

API method.

Clients that depend on this ability are not portable. Normally the physical creation of destination is an administrative task and is not to be initiated by the JMS API.

Specified by:
createQueue in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException - If the topic creation failed.

createTopic

public javax.jms.Topic createTopic(java.lang.String name)
                            throws javax.jms.JMSException
This method allows to create or retrieve a Topic with the given name on the local server. First a destination with the specified name is searched on the server, if it does not exist it is created. In any case a topic identity with its provider-specific address is returned.

If the given name is a provider-specific name (#x.y.z unique identifier) a topic identity is returned with the specified identifier.

API method.

Clients that depend on this ability are not portable. Normally the physical creation of destination is an administrative task and is not to be initiated by the JMS API.

Specified by:
createTopic in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed.
javax.jms.JMSException - If the topic creation failed.

createTemporaryQueue

public javax.jms.TemporaryQueue createTemporaryQueue()
                                              throws javax.jms.JMSException
API method.

Specified by:
createTemporaryQueue in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the request fails for any other reason.

createTemporaryTopic

public javax.jms.TemporaryTopic createTemporaryTopic()
                                              throws javax.jms.JMSException
API method.

Specified by:
createTemporaryTopic in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.JMSException - If the request fails for any other reason.

run

public void run()
API method.

Specified by:
run in interface java.lang.Runnable
Specified by:
run in interface javax.jms.Session

commit

public void commit()
            throws javax.jms.JMSException
API method.

Specified by:
commit in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed, or not transacted, or if the connection is broken.
javax.jms.JMSException

rollback

public void rollback()
              throws javax.jms.JMSException
API method.

Specified by:
rollback in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed, or not transacted.
javax.jms.JMSException

recover

public void recover()
             throws javax.jms.JMSException
API method.

Specified by:
recover in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed, or transacted.
javax.jms.JMSException

unsubscribe

public void unsubscribe(java.lang.String name)
                 throws javax.jms.JMSException
API method.

Specified by:
unsubscribe in interface javax.jms.Session
Throws:
javax.jms.IllegalStateException - If the session is closed or if the connection is broken.
javax.jms.InvalidDestinationException - If the subscription does not exist.
javax.jms.JMSException - If the request fails for any other reason.

close

public void close()
           throws javax.jms.JMSException
Closes the session. API method.

Specified by:
close in interface javax.jms.Session
Throws:
javax.jms.JMSException

addConsumer

protected void addConsumer(MessageConsumer mc)
Called here and by sub-classes.


addProducer

protected void addProducer(MessageProducer mp)
Called here and by sub-classes.


isAutoAck

public final boolean isAutoAck()


Copyright © 2011 ScalAgent D.T.. All Rights Reserved.