The container synchronizes the instance�s state before it invokes the ejbRemove method. This means that the persistent state of the instance at the beginning of the ejbRemove method is the same as it would be at the beginning of a business method (i.e., if the instance is not already synchronized from the state in the database, the container must invoke ejbLoad before it invokes ejbRemove).
Why does the ejbRemove() need synchronization? Why it will invoke ejbLoad, how about ejbStore? Any different if the ejbRemove involved in a transaction?