Well, an educated guess could be that the designers didn't even want to open the risk of MDB creation being performed on demand In any case even the maintenance & expansion of the EJB pool for MDBs is controlled "anonymously" by the container - no where we ask explicitly for a MDB instance. However if you need the notification, you can still have one ejbCreate() inside bean code, right?
Hi Pradeep, the mdb is supposed to conform to the asynchronous handling of request by any subscriber. So only the OnMessage() method is invoked by the container whenevr a new message arrives. The creation of MDB's is totally container managed, the clients of MDB does not have control on the creation/destruction of it. I believe as a result it does not make sense putting ejbCreate() in MessageDriven interface