Please explain the differences.
What will you choose?
If your architecture requires a message to be delivered to multiple subscribers, go for topics. If there's only one subscriber, or you need "load balancing" features, use queues.
Note also that you can't really speak of 'push' or 'pull' here. Using queues does not cause your application to use polling to fetch its data, instead the server will still push new messages automatically to the receiver.
What is durable subscription?
In case of a non-durable subscription, subscriber can get the messages only till it is alive (subscription is active). A Subscriber can be made Durable by registering a subscription and mentioning it is durable. For durable, the client/application needs to mentioned the unique identity. Unique Identity is generally created by:?????
Subsequent subscriber objects with the same identity resume the subscription in the state it was left in by the prior subscriber. If there is no active subscriber for a durable subscription, JMS retains the subscription’s messages until they are received by the subscription or until they expire.
What is Queue Browser? Why it is required? Why do not we have Topic Browser?
We have queue browser to view messages (still in queue). This is required because the normal subscription to the queue will consume the message.
We do not have Topic Browsers because message in Topics goes away as soon as they are created (special case is durable).