Sessions
A session object is a single-threaded context for producing and consuming messages. If a client uses different threads for different paths of message execution, a session must be created for each of the threads.
A session is used to create message producers, message consumers, temporary topics, and temporary queues; it also supplies provider-optimized message factories.
In JMS, a session provides the context for grouping a set of send and receive messages into a transactional unit.