This week's book giveaways are in the Refactoring and Agile forums. We're giving away four copies each of Re-engineering Legacy Software and Docker in Action and have the authors on-line! See this thread and this one for details.
The @remove annotation is used only on Stateful session beans methods. After the method annotated with @remove returns, the instance is destroyed by the container. This is because with Stateful session beans every client gets its own instance and this way the performance is greatly improved. (Think in this scenario if every instance would need to wait a timeout to be destroyed)