Tomcat - Tomcat 5.5, concurrencia y servicios web

 
Vista:

Tomcat 5.5, concurrencia y servicios web

Publicado por Adrián Rober (1 intervención) el 24/05/2007 20:19:27
Hola a todos, me gustaría saber que opináis al respecto de un problema que me ha surgido con Tomcat:

Desde un script en PHP quiero llamar a un servicio web que corre sobre Tomcat 5.5 (usando Axis2) y, dado que me es necesario que el PHP siga a lo suyo, hago que el servicio web se ocupe de crear un thread que realmente haga toda la faena. De este modo me aseguro que el servicio web acabe enseguida, devolviendo un resultado cualquiera a la llamada recibida desde el PHP y así poder proseguir con su ejecución y mostrar la página al usuario.

El problema viene cuando dos usuarios de forma simultánea ejecutan dicho script PHP. Parece ser que Tomcat atiende la primera petición recibida usando su pool de threads convenientemente, ejecutando el servicio web que a su vez crea el thread que "realmente trabaja". Sin embargo, puesto que el servicio invocado acaba enseguida, parece ser que Tomcat lo marca es su pool como thread libre y al llegar la segunda petición se reaprovecha dicho hilo, eliminando el thread "trabajador" que estaba realizando las tareas "pesadas" sin darle la posibilidad de acabar.

¿Os parece posible que Tomcat elimine un thread en ejecución (en este caso se trata del thread "trabajador") al querer reaprovechar la posición del pool desde la que se creó dicho thread? Por una parte me parecería razonable que fuera así para asegurarse que no queden hilos colgados sin acabar.

Si tenéis constancia de que verdaderamente sea así, ¿podéis darme alguna idea sobre cómo podría hacer llamadas asíncronas a servicios web desde un script PHP? ¿Qué debería hacer con el servicio web? ¿Hay algo que se pueda hacer con Tomcat para que no actúe de este modo?.

Un saludo y gracias de antemano.
Adri
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Tomcat 5.5, concurrencia y servicios web

Publicado por cuco (1 intervención) el 15/06/2008 11:35:24
si me parece posible
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomcat 5.5, concurrencia y servicios web

Publicado por javier (1 intervención) el 26/09/2008 06:31:57
hola yo tengo un problema similar pero en mi caso mi cliente está basado en Vb6 y se conecta a un servlet que se encuentra en tomcat 5.5, este último revuelve las peticiones del cliente, es decir cPero en mi caso la concurrencia es de 10 clientes apuntando a el mingo servlet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tomcat 5.5, concurrencia y servicios web

Publicado por Juanjo (1 intervención) el 08/04/2010 15:45:53
J2EE (tomcat para entendernos), no lleva bien la gestión de hilos en general. Si lo que se desea es que se lancen tareas desde la plataforma, lo mejor es enviar un mensaje , que puede ser asíncrono, a un servidor JMS y que éste se encargue de la gestión de los hilos y las tareas.

Servidores gratuitos de JMS los encontrareis en la Web a patadas, un par de ejemplos son OpenJMS y ActiveMQ.

Espero haberos sido de ayuda

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar