Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Message Queue, v4.5 API Specification
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.jms
Interface ServerSession

    public interface ServerSession

A `ServerSession` object is an application server object that is used by a server to associate a thread with a JMS session (optional).

A `ServerSession` implements two methods:

- `getSession` - returns the `ServerSession`'s JMS session.
- `start` - starts the execution of the `ServerSession` thread and results in the execution of the JMS session's `run` method.

A `ConnectionConsumer` implemented by a JMS provider uses a `ServerSession` to process one or more messages that have arrived. It does this by getting a `ServerSession` from the `ConnectionConsumer`'s `ServerSessionPool`; getting the `ServerSession`'s JMS session; loading it with the messages; and then starting the `ServerSession`.

In most cases the `ServerSession` will register some object it provides as the `ServerSession`'s thread run object. The `ServerSession`'s `start` method will call the thread's `start` method, which will start the new thread, and from it, call the `run` method of the `ServerSession`'s run object. This object will do some housekeeping and then call the `Session`'s `run` method. When `run` returns, the `ServerSession`'s run object can return the `ServerSession` to the `ServerSessionPool`, and the cycle starts again.

Note that the JMS API does not architect how the `ConnectionConsumer` loads the `Session` with messages. Since both the `ConnectionConsumer` and `Session` are implemented by the same JMS provider, they can accomplish the load using a private mechanism.

See Also:
  `ServerSessionPool`, `ConnectionConsumer`

Method Summary
`Session` | `getSession()` Return the `ServerSession`'s `Session`.
`void` | `start()` Cause the `Session`'s `run` method to be called to process messages that were just assigned to it.

Method Detail

### getSession

    Session getSession()
                       throws JMSException

  Return the `ServerSession`'s `Session`. This must be a `Session` created by the same `Connection` that will be dispatching messages to it. The provider will assign one or more messages to the `Session` and then call `start` on the `ServerSession`.

  Returns:
    the server session's session
  Throws:
    `JMSException` - if the JMS provider fails to get the associated session for this `ServerSession` due to some internal error.

### start

    void start()
               throws JMSException

  Cause the `Session`'s `run` method to be called to process messages that were just assigned to it.

  Throws:
    `JMSException` - if the JMS provider fails to start the server session to process messages due to some internal error.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Message Queue, v4.5 API Specification
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.