
Redefinir el timeout al ejecutar consultas en java
#1
Escrito 21 septiembre 2011 - 01:22
Tengo un problema de timeout en un webservice escrito en Java.
Este webservice usa la clase Config.Driver para a través del Drivermaganer crear conexiones usando ASJ400JBDCCDRIVER para conectarme a DB2.
Bueno, pues generalmente funciona bien, pero hay momentos en que el servidor por la carga que tiene demora un poco más en responder y genera errores de TimeOut en los clientes.
Quiero comentarles que las consultas están optimizadas y que el plan de ejecución de la misma me da un buen redimiento. Así que por ello he buscado la manera de incrementar el tiempo de espera y de esa manera dar un margen mayor para que los clienets reciban una respuesta,
Algua sugerencia amigos?
#2
Escrito 21 septiembre 2011 - 08:31
Saludos
#3
Escrito 21 septiembre 2011 - 08:36
¿ Y el programa que consume el WebService en que está hecho amigo ?
SaludOS
#4
Escrito 21 septiembre 2011 - 09:28
Hola
¿ Y el programa que consume el WebService en que está hecho amigo ?
SaludOS
Está escrito en php. Y uso la clase SOAP que viene integrada en la versión 5 de php.
alguna funcionalidad de colas?
Saludos
No amigo, el proceso es, abro la conexión, ejecuto la operación, cargo los datos y cierro la conexión. No he implementado un pool de conexiones
#5
Escrito 21 septiembre 2011 - 09:42
[csharp]
cwcs = new ClientServices.ClientWebServices();
cwcs.CookieContainer = new System.Net.CookieContainer();
//Establecer el tiempo de espera para el método de llamadas web de 20 segundos,
//ajustar a un valor diferente si fuese necesario
cwcs.Timeout = 20000;
[/csharp]
SaludOS
#6
Escrito 22 septiembre 2011 - 07:30
Lo que yo he hecho es asignar un timeout digamos considerable en el programa que consumirá el webservice, algo así:
[csharp]
cwcs = new ClientServices.ClientWebServices();
cwcs.CookieContainer = new System.Net.CookieContainer();
//Establecer el tiempo de espera para el método de llamadas web de 20 segundos,
//ajustar a un valor diferente si fuese necesario
cwcs.Timeout = 20000;
[/csharp]
SaludOS
Es que el que me está dando el mensaje de timeout es precisamente el webservice amigo. No el cliente.

#7
Escrito 22 septiembre 2011 - 07:38
Si claro, el webservice es el que genera la excepción, debes de hacer un catch de la excepción y en la app cliente tendrás que controlarla y actuar en consecuencia, no se, por ejemplo reintentando en cuanto se dispare la excepción, digo tú sabes más de eso que yo amigo.
Salud OS
#8
Escrito 22 septiembre 2011 - 12:00
por ejemplo reintentando en cuanto se dispare la excepción, digo tú sabes más de eso que yo amigo.

