Since the call is asynchronous, the "client" (i.e. whoever put the message in the queue) may no longer be available...
The "client" will be available as this is for a web application. The basic problem is that I know there are computationally intensive tasks that will almost always have to be performed (unless the user exits the application). Therefore, the idea is to spin off and perform those tasks asynchronously when a user enters a page so the required data will be readily available for subsequent pages.
Just a question - does it make sense to use MDBs in this scenario? If you need to take a result, should you be using MDBs in the first place?
That was my question as well. I considered WebSphere's WorkManager API to be more appropriate as it is simpler and offers more features. However, MDBs were mandated as the solution to the problem.
I would use another queue for the result object, and set the correlation id on the response to the JMSMessageID from the request message so the sender can find the specific result on the queue with a simple selector.
Robin, this appears to the answer I was looking for. The use of a correlation id should allow me to identify the appropriate message of the queue. Thanks!
[ November 12, 2008: Message edited by: Jay Damon ]