Here is how I think we can simulate JMS topic listeners in WAS without using MDBs :
1. Using the com.ibm.websphere.asynchbeans package, we can create AlarmManager and AlarmListener instances. These AlarmListeners are basically configured to be fired in certain intervals of time. Though, using these classes ties us to the WAS runtime, this is the most appropriate way of spawing threads from inside the thread-managed WAS environment.
2. Synchronous JMS receive calls like Subscriber.receive() can be used from inside the "fired" method of these AlarmListeners inorder to listen for messages on desired topics.
In other words - we spawn a
thread which which keeps listening on topics using synchronous receive APIs.
It's highly probable that Spring too takes a similar approach.
I am not sure about ehcache - but the same can be done there too.
Thanks