I quoted following text from website:
My questions is how to get truely asynchronize call? When receiving message, JMS seems to use one thread to keep asking whether message is arrived or not?
18.4.2. Synchronous Receiving
While JMS is typically associated with asynchronous processing, it is possible to consume messages synchronously. The overloaded receive methods provide this functionality. During a synchronous receive the calling thread blocks until a message becomes available. This can be a dangerous operation since the calling thread can potentially be blocked indefinitely. The property receiveTimeout specifies how long the receiver should wait before giving up waiting for a message.