I feel the answer mentioned in the HFEJB is correct; i.e. answer - d only
Option C is bit tricky, you need to interpret it carefully.
c) The provider must close any database connections before ejbPassivate() completes.
Thumb Rule : The Stateful session bean will successfully passivated if we ensure that all the non-transient variables must one of the following - 1. Serializable Object 2. a null value 3. bean's remote component interface or home interface 4. bean's local component or home interface 5. a SessionContext Object 6. Object of type JNDI Context 7. UserTransaction interface type 8. Resource manager connection Factory (like javax.sql.DataSource instance)
Closing the database in option C, implies something like conn.close(); It is good to call the clean up methods in the methods ejbPassivate() and ejbRemove(), but it is not a MUST. Here the option C fails..
I hope this might have cleared your doubt.
When the world says, "Give up,"<br />Hope whispers, "Try it one more time."