Can someone explain the implications of running a SingleThreadModelservlet in a distributed environment. For instance, might the container maintain a pool of servlet instances in each VM that the application is distributed across.
When a Servlet implements SingleThreadModel interface, the container is required to use an object of a servlet to serve a single request at a time. To serve multiple requests, container can maintain a pool of servlet objects, each instance serving a single request. But maintaining a pool of servlet objects is not a specification requirement and depends on the container only. Same restriction apply in the case of distributed environment. A servlet instance can serve only one request at a time.