Ir al contenido


Foto

Redefinir el timeout al ejecutar consultas en java


  • Por favor identifícate para responder
7 respuestas en este tema

#1 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 21 septiembre 2011 - 01:22

Saludos amigos,

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?


  • 0

#2 jdepaz

jdepaz

    Advanced Member

  • Miembros
  • PipPipPip
  • 264 mensajes
  • LocationMedellín Colombia

Escrito 21 septiembre 2011 - 08:31

alguna funcionalidad de colas?


Saludos

  • 0

#3 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 21 septiembre 2011 - 08:36

Hola

¿ Y el programa que consume el WebService en que está hecho amigo ?

SaludOS
  • 0

#4 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

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
  • 0

#5 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 21 septiembre 2011 - 09:42

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
  • 0

#6 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

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. :p
  • 0

#7 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

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
  • 0

#8 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

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.


:p que modesto es usted amigo mio. :D si es un experto en webservices¡¡¡¡¡¡¡
  • 0




IP.Board spam blocked by CleanTalk.