A la hora de consumir un web service externo es necesario saber si la conexión hacia el exterior está configurara correctamente (puertos del firewall, etc.). Una manera sencilla de realizar dicha comprobación es a través de la creación de una conexión HTTP con servidor externo (tipo G) en la transacción SM59 y en la que incluiremos la dirección del servidor al que se desea acceder. Para comprobar si hay conexión bastará pulsar el botón "Test de conexión".
Una mala configuración puede provocar que se reciban timeouts a la hora de invocar el web service o que se produzcan fallos a la hora de crear el socket de comunicación...
martes, marzo 24, 2009
jueves, marzo 05, 2009
Timeouts en escenarios síncronos
Existen ocaciones en las que los programas que utilizamos pueden tardar mucho en función de la cantidad de datos que le vayamos a pedir. Esto puede dar lugar a que si nos encontramos en un escenario síncrono podamos obtener un timeout como respuesta.
En mi caso, el escenario en el que se producía el error era de tipo síncrono (SOAP -> RFC). Y el timeout aparecía cuando la función tenía que recopilar demasiados datos.
En la transacción SM21 aparece una versión más detallada del error:
Una de las maneras de ampliar el tiempo de timeout es a través de la transacción SMICM. En el menú Pasar a -> Servicios (Shift+F1) veremos que el tiempo definido para el servicio HTTP es de 60 segundos, por lo que bastará marcar dicho servicio y editarlo (menú Servicio -> Modificar) para asignarle el tiempo que deseemos.
NOTA: Hay que tener en cuenta que estos cambios se perderán si se reinicia el servicio ICM, tal como notifica el siguiente mensaje:
Una de las opciones posibles para definir de manera definitiva esta parametrización es por medio de la creación del parámetro de perfil icm/server_port_<xx> a través de la transacción RZ10. Ejemplo:
icm/server_port_0 = PROT=HTTP,PORT=8000,TIMEOUT=30,PROCTIMEOUT=600
Los posibles valores vienen descritos en el link Timeout Options for ICM and Web Dispatcher.
Este parámetro se debe incluir en un fichero del sistema, por lo que deberá ser un administrador el que realice la configuración.
Links de referencia:
500 Connection timed out
|
© 2001-2005, SAP AG |
En mi caso, el escenario en el que se producía el error era de tipo síncrono (SOAP -> RFC). Y el timeout aparecía cuando la función tenía que recopilar demasiados datos.
En la transacción SM21 aparece una versión más detallada del error:
Una de las maneras de ampliar el tiempo de timeout es a través de la transacción SMICM. En el menú Pasar a -> Servicios (Shift+F1) veremos que el tiempo definido para el servicio HTTP es de 60 segundos, por lo que bastará marcar dicho servicio y editarlo (menú Servicio -> Modificar) para asignarle el tiempo que deseemos.
NOTA: Hay que tener en cuenta que estos cambios se perderán si se reinicia el servicio ICM, tal como notifica el siguiente mensaje:
Una de las opciones posibles para definir de manera definitiva esta parametrización es por medio de la creación del parámetro de perfil icm/server_port_<xx> a través de la transacción RZ10. Ejemplo:
icm/server_port_0 = PROT=HTTP,PORT=8000,TIMEOUT=30,PROCTIMEOUT=600
Los posibles valores vienen descritos en el link Timeout Options for ICM and Web Dispatcher.
Este parámetro se debe incluir en un fichero del sistema, por lo que deberá ser un administrador el que realice la configuración.
Links de referencia:
- Ken's SAP Basis Blog - Connection to partner timed out after 60s
- XI: Timeouts, timeouts, timeouts....
- How To... Investigate Timeouts In Synchronous XI/PI Scenarios
- Troubleshooting Guide - SAP Exchange Infrastructure 3.0 and 2.0
lunes, marzo 02, 2009
Cómo Eliminar un Componente del Integration Builder
Si por casualidad has importado desde el System Landscape Directory una versión de software de un componente por error y la deseas eliminar, deberás hacer doble clic sobre la misma y en la ventana del componente seleccionar la opción Software Component Version -> Delete (Ctrl+D).
Suscribirse a:
Entradas (Atom)