Aplicacion multiusuario, con servlets, problemas memoria compartida???

Pichu
14 de Abril del 2004
Hola a [email protected], tengo una duda que no me deja dormir, estoy desarrollando una aplicacion con tomcat 5, servlets, xml y xsl. Tengo un servlet principal que es el que recibe todas las peticiones de los usuarios, y este redirecciona por los demas servlets o clases java. Hay algun problema si pongo variables a nivel de objeto y no estan declaradas a nivel de método?. En el servlet principal no lo hago así porque ya ví que so había problemas, pero puede pasar lo mismo si lo hago en las demas clases o servlets.

Gracias por escucharme.

maramonar
14 de Abril del 2004
En los servlets no tendrías que utilizar variables de instancia que puedan ser modificadas por cada request del cliente ya que como veo que has comprobado una misma instancia de un servlet puede atender a varios request concurrentes. Con las clases tendrías que utilizar un razonamiento similar, si tenes alguna clase que pensas utilizar como una especie de "servicio" (una instancia de esa clase va a atender a distintos clientes, ej. algún singleton o alguna clase que mantes cacheada) vas a tener que tener mucho cuidado con el uso de variables de instancia. Para los demas casos donde cada "cliente" crea y mantine una referencia a una determinada instancia de clase no vas a tener problema.

Pichu
14 de Abril del 2004
Oka, gracias por la aclaracion, creo que no debo tener problemas segun lo que me has contestado, por que tengo un servlet principal por el que entran todas las peticiones, y este digamos que es el dispatcher de la aplicacion que va llamando a otros servlets y estos a su vez llaman a clases java. Si el servlet principal abre un hilo nuevo de ejecucion por cada peticion, no deberia haber problema de memoria compartida, de todas formas haré mas pruebas para asegurarme, y os comentaré los resultados.

Gracias maramonar.