• Tune EJB calls. They are expensive.
• Use Plain Java Object (POJO), when you do not need an EJB.
• If EJB client and EJB are deployed on same JVM, then use Local Interface.
• Multiple entity beans must be wrapped in one session bean to reduce remote calls.
• Use transient with unnecessary data variables to avoid network overhead.
• Always cache to EJBHome references so that do not need to lookup JNDI each time.
• Set transaction time out.