Message-driven beans are generally constructed to be message consumers, although they can, like any other EJB, also be used to create and send messages. A Message-driven bean lives entirely within the container, it has no security context of its own. When the bean is deployed, it is associated with a particular queue or topic, and is invoked by the container when a message arrives for that queue or topic.
The following are the features of a Message-driven bean:
It is anonymous; that is, it has no client visibility. No state is maintained for the client.
All instances of a particular Message-driven bean are equivalent.
The container can pool instances.
It does not have a local or remote interface.
It is invoked asynchronously ...