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.

  Since:
    JMS 1.0
  See Also:
    `ServerSessionPool`, `ConnectionConsumer`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.

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