All- I'm reading a number of references on JMS written some time between 2001 and now. The challenge that comes with that is knowing which things are still true today and which things were describing the state of affairs at that time. I found the following paragraph in the O'reilly Java Message Service (First Edition) book written in 2001 on p. 32. Can anyone confirm that this is still an accurate description of JMS?
"The Chat application ((which is what they use for their JMS example in the book)) uses a separate session for the publisher and subscriber, pubSession and subSession, respectively. This is due to a threading restriction imposed by JMS. ***According to the JMS specification, a session may not be operated on my more than one thread at a time.*** In our example, two threads of control are active: the default main thread of the Chat application and the thread that invokes the onMessage() handler. The thread that invokes the onMessage() handler is owned by the JMS provider. Since the invocation of the onMessage() handler is asynchronous, it could be called while the main thread is publishing a message in the writeMessage() method. If both the publisher and subscriber had been created by the same session, the two threads could operate on these methods at the same time; in effect, they could operate on the same TopicSession - a condition that is prohibited." (emphasis mine) Thanks, Joshua Smith