Sybase SQL Anywhere - Tiempo de espera de una respuesta

 
Vista:

Tiempo de espera de una respuesta

Publicado por Rafa (1 intervención) el 06/04/2014 08:06:38
Hola amigos, tengo un problema, hice un procedimiento almacenado en sql anywhere 12, este llama a un web service que debe retornar una respuesta, como puedo establecer tiempo de espera de la respuesta y que si el tiempo de espera se vence haga otra operacion.

Gracias por su ayuda
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
Imágen de perfil de Alejandro

Estableciendo tiempo de espera en llamada a web service

Publicado por Alejandro (46 intervenciones) el 20/02/2024 22:38:09
Rafa, para establecer un tiempo de espera en la llamada a un web service desde un procedimiento almacenado en Sybase SQL Anywhere 12 y manejar el caso de expiración del tiempo, puedes seguir estos pasos:

1. Utiliza una variable para el tiempo de espera:
Declara una variable para almacenar el tiempo de espera deseado en milisegundos.

1
2
DECLARE @tiempo_espera INT;
SET @tiempo_espera = 5000; -- 5000 milisegundos (5 segundos), ajusta según tus necesidades.

2. Configura el temporizador para la llamada al web service:
Configura el temporizador interno de Sybase SQL Anywhere para controlar el tiempo de espera.

1
SET OPTION wait_time = @tiempo_espera;

3. Realiza la llamada al web service:
Llama al web service dentro del bloque TRY...CATCH para capturar cualquier excepción que pueda ocurrir, incluyendo la expiración del tiempo de espera.

1
2
3
4
5
6
7
8
BEGIN
    DECLARE @resultado NVARCHAR(MAX);
    -- Llama al web service aquí y almacena el resultado en @resultado.
    -- Utiliza la función HTTPCLIENT() u otro método según tu implementación.
 
    -- Ejemplo:
    SET @resultado = HTTPCLIENT('GET', 'http://tu_webservice_url');
END;

4. Maneja la excepción por tiempo de espera expirado:
Usa el bloque CATCH para manejar la excepción en caso de que el tiempo de espera expire.

1
2
3
4
5
6
7
CATCH
    WHEN OTHERS THEN
        -- Realiza la operación alternativa en caso de que el tiempo de espera expire.
        -- Puedes registrar un mensaje de error o ejecutar otra lógica según tus necesidades.
        -- Ejemplo:
        -- INSERT INTO log_errores (mensaje) VALUES ('Tiempo de espera del web service expirado');
END;

Este código te permite controlar el tiempo de espera durante la llamada al web service y ejecutar una operación alternativa si el tiempo de espera expira. Ajusta los valores y la lógica según tus requisitos específicos.
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