As per the oracle documentation...
Singleton session beans offer similar functionality to stateless session beans but differ from them in that there is only one singleton session bean per application, as opposed to a pool of stateless session beans, any of which may respond to a client request. Like stateless session beans, singleton session beans can implement web service endpoints.
Singleton session beans maintain their state between client invocations but are not required to maintain their state across server crashes or shutdowns.
Why Singleton session beans are mainting their state between client invocations? As far as I know, stateless/singleton both should be cleaned once invocation completes! Please explain.