Ver Mensaje Individual
  #7 (permalink)  
Antiguo 09/06/2014, 10:29
Recca
 
Fecha de Ingreso: octubre-2008
Mensajes: 9
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Web Service que se ejecuta varias veces al mismo tiempo

Es cierto, intentaré aportar algo más de información:

- El servidor donde tengo publicado mi servicio es un Glassfish.
- Mi servicio está desarrollado en JAX-WS, aunque el mismo, a su vez, es un cliente que consume el servicio de otra herramienta usando Axis2 (dadas las necesidades del proyecto, esta era la única posibilidad).

Un ejemplo similar de mi servicio sería algo así:

Código:
class Modificador
{
	// Objeto para almacenar la estructura de una persona (objeto personalizado de la herramienta destino)
	Persona pers;

	...
	...
	...


	public cambiar_edad (string nombre, int edad)
	{
		string query = "SELECT * FROM personas WHERE nombre = " + nombre;

		// El método executeQuery devuelve un objeto de tipo "Persona"
		pers = servicio.executeQuery (query);

		...
		...

		// En el momento en que se están haciendo estas operaciones es cuando llega otra llamada al mismo método
		// y machaca el valor de la variable pers.

		...
		...

		pers.edad = edad;
		servicio.update(pers);	//Por tanto, el update se realiza sobre el registro que no debe
	}

	...
	...
}

No sé si se entiende bien... Yo creo que el problema está en el Glassfish que no gestiona bien las conexiones, pero creo que podría solucionarlo directamente en el código mediante la variable pers, quizá debería declararla a nivel de método en lugar de hacerlo a nivel de clase, o quizá ponerle un synchronized al método "cambiar_edad". El problema es que no estoy segura y no puedo hacer cambios a la ligera porque no hay entorno de desarrollo :(

Muchas gracias.

Un saludo.