Log del sistema, análisis de dumps

Conceptos del log del sistema

El sistema R/3 graba eventos y problemas, tales como borrado de modos de usuarios del sistema, bloqueos de usuarios al introducir incorrectamente la password, parada y arranque del sistema, etc en un log. Este log no es más que un fichero a nivel de sistema operativo. Si el sistema R/3 se ejecuta en hosts UNIX, existen dos tipos de log del sistema:

Local
Cada servidor de aplicaciones de R/3 dispone de un log local que contiene los mensajes que ha generado ese servidor. Este fichero de log local es un fichero circular. Cuando el fichero llega a su tamaño máximo, el sistema empieza a sobreescribir el fichero desde el principio (la información más antigua). El fichero de log local se guarda en cada servidor de aplicación en la siguiente ruta:

Entorno UNIX  /usr/sap/<SID>/<instance number>/log/SLOG00
Entorno Windows NT C:\usr\sap\<SID>\<instance number>\log\Slog00.log donde <SID> es el nombre de la base de datos SAP y <instance number> es el número de instancia.

Central
Cada servidor de aplicaciones copia las entradas del log local a un log central. Esta opción no se encuentra en servidores Windows NT ni AS/400, sólo existen logs locales (uno por servidor de aplicación). El log central se guarda en un servidor de aplicaciones seleccionado, el resto de servidores de aplicación envían sus mensajes locales a este servidor.

El log central es escrito en 2 ficheros: un fichero activo y un fichero antiguo. El fichero activo contiene el log actual. Cuando el fichero activo llega a su longitud máxima definido en los parámetros del sistema, éste borra el fichero antiguo de logs, usa el fichero activo como fichero antiguo y crea un nuevo fichero de log. Este cambio en el log no es notificado al usuario.

Mientras que el log local se mantiene siempre actualizado, el log central puede sufrir retardos desde que se escribe un mensaje en el log local hasta que ese mensaje es enviado al log central. Fallos de comunicaciones entre los distintos servidores pueden resultar en retardos grandes en la escritura del log central o incluso en pérdida de estos mensajes.




Accediendo al log local del sistema

Al log del Sistema se accede directamente por la transacción SM21 o por el menú general Herramientas/Gestión/Monitor/Log Sistema .

La pantalla de seleccción de la transacción SM21 tiene 2 modos: El modo Normal y Experto. El modo normal es el definido por defecto, y al que se entra directamente cuando se ejecuta la transacción SM21. Para cambiar a modo experto, deberemos ir al menú desplegable Tratar/Modo experto. Ambos modos se diferencian en que éste último da más opciones de selección.

Accediendo al log local en modo normal

Accediendo a la transacción SM21 – directamente o a través de menú – entramos por defecto a la pantalla de selección del log local del servidor de aplicaciones al que estemos conectados en Modo Normal.

Veamos los distintos parámetros de selección que nos permitirán filtrar los datos del log:
De Fecha/Hora a Fecha/Hora: Permite establecer un rango de fechas de mensajes del log a visualizar.

Usuario: Nos permitirá visualizar sólo los mensajes que se hayan grabado en el sistema debido exclusivamente a la actividad del usuario especificado.

Código de transación: Nos permitirá visualizar los mensajes del log debidos exclusivamente a la acción de los usuarios sobre la transacción especificada.

Proceso SAP: Nos permitirá visualizar los mensajes de log debidos a un proceso particular R/3. Valores posibles son:

DP Procesos del dispatcher
Dn Procesos de trabajo, donde n = 0,...,9 o n = a, ...,z . En el caso de tener más de 10 procesos de trabajo numeraremos los siguientes con las letras del abecedario.
VB Actualizaciones
Vn Programas de actualizazión, donde n = 0,...,9 o n = a, ...,z Sn Spool, donde n = 0,...,9 o n = a, ...,z
MS Servidor de Mensajes

Clases de Problemas: Limita la visualización por tipo de mensaje, sólo errores, errores y advertencias y todos los mensajes. El valor por defecto es la opción todos los mensajes.

Accediendo al log local en modo experto

Para acceder al log del sistema en modo experto deberemos acceder por el menú desplegable tal y como se ha explicado anteriormente. La pantalla visualizada es igual que la anterior con la salvedad que se dispone de más opciones de filtro como es la opción Atributos.

Esta opción nos permite filtrar además por:

Programa: Se restringe el resultado a los mensajes causados por la ejecución del programa especificado.
Clase de Problema: Limita el resultado a ciertos tipos de mensajes. Los valores posibles son:
K Mensajes del kernel del sistema
S Mensajes de estado
T Mensajes de transacciones
W Mensajes de advertencia
X Otros tipos de mensajes
De fichero / posición a fichero / posición: Define el segmento del fichero de log a leer. Si ya se ha leído el fichero una vez, se puede determinar la posición de una entrada específica haciendo doble clic; la posición se encuentra en la sección de detalles técnicos.

Formato mensaje (tipo): Se pueden seleccionar mensajes por el formato de la componente del sistema. Para visualizar posibles valores, deberemos pulsar el botón de ayuda de búsqueda correspondiente.

Terminal: Se pueden filtrar los mensajes que han sido causados por la actividad llevada a cabo desde un servidor de presentación.

Clase de desarrollo: Se pueden filtrar los mensajes que han sido producidos por la ejecución de programas que pertenezcan a una clase de desarrollo en particular. Las clases de desarrollo son agrupaciones de objetos de Workbench o Customizing cuyo propósito es la jerarquización de tales objetos para una mejor gestión así como el posibilitar su transporte a otros entornos.

Con entradas internas Syslog: Visualización de mensajes relativos a los procesos de recolección y envío de mensajes de log desde el log local al log central. Esta opción no esta disponible para entornos que no sean Unix.

Leyendo el log del sistema

Una vez introducidos los valores de selección en la pantalla accederemos al contenido del log pulsando el botón Nueva Lectura syslog.

El log del sistema aparece en formato tabla con las siguientes columnas en el siguiente orden:

Hora del mensaje
Proceso SAP
Mandante
Usuario
Código transacción
No de mensaje
Texto del mensaje

Opciones de relectura del log del sistema

Si hemos visualizado una vez el contenido del log del sistema filtrando exclusivamente por fecha y sin salirnos de la transacción volvemos a la pantalla de selección, el sistema muestra tres distintas opciones para volver a visualizar la información:

Nueva Lectura en el Syslog. Vuelve a acceder al fichero para sacar un nuevo listado con los parámetros que se hayan seleccionado.

Sólo Editar Nuevamente. Vuelve a mostrar el último resultado del log visualizado anteriormente con esta opción.

Cargar en Syslog. Permite realizar una nueva lectura en el syslog filtrando con otros valores pero mantiene en el buffer el anterior resultado que puede ser accedido de nuevo a través de la segunda opción.

Accediendo a logs remotos del sistema

Si el sistema SAP R/3 al que estamos conectados es un sistema distribuído, es decir , está compuesto de varios servidores de aplicaciones, tendremos la posibilidad de acceder a cada uno de los logs locales de cada uno de los servidores sin tener que conectarnos directamente a cada uno de los servidores de aplicación. Para ello usaremos las opciones de lectura de logs remotos que nos ofrece la transacción SM21. Estas opciones se encuentran en el menú desplegable en Syslog/Seleccionar .

La opción syslog local es la que está activa por defecto y ya ha sido explicada . La opción syslog remoto nos lleva a una pantalla similar a la pantalla de selección del syslog local con la salvedad que incluye un parámetro más en la pantalla de selección. Este parámetro es la instancia. Aquí le podremos indicar el nombre de la instancia cuyo log del sistema queremos visualizar.

La opción todos los syslogs remotos nos lleva a una pantalla de selección idéntica a la del log local con la salvedad que los mensajes que se visualizarán corresponderán la los de todas las instancias que componen nuestro sistema R/3. En la visualización de los mensajes del log aparecerá un campo más llamado instancia que nos servirá para conocer en qué instancia se ha generado cada mensaje.

La opción Syslog Central no está disponible para sistemas R/3 fuera del entorno UNIX.

Es importante destacar que las únicas instancias que están disponibles para la visualización de los logs remotos son las que componen el sistema R/3 al que estamos conectados.
Concepto de Dump

Dump o error en tiempo de ejecución es un log de terminación anormal de ejecución de cualquier programa. Esto se produce por una cancelación del programa que se está actualmente ejecutando; el sistema nos muestra una pantalla con un log de terminación donde se puede encontrar información acerca del error producido y su posible solución.

Las posibles causas de terminación anormal de programas, entre otras, pueden ser:

Errores de sintaxis en programas hechos a medida.

Referencias obsoletas a objetos del Workbench hechos a medida que han sido eliminados.
Cancelación manual de un modo actualmente en ejecución.
Cuando se produce una terminación anormal de una ejecución de un programa, el dump es mostrado automáticamente en exclusiva al usuario cuyo proceso de diálogo ha sido cancelado. En ese momento el usuario podrá leer ese log, pero si se sale de la pantalla del log del dump, éste ya no se vuelve a mostrar en pantalla. Para acceder de nuevo a él, deberemos acudir a la transacción donde se puede gestionar todos los dumps producidos en el sistema.

Accediendo a los dumps del sistema

La transacción de los dumps es ST22; accediendo por el menú desplegable será Herramientas/Gestión/Monitor/Análisis de Dumps.

Por defecto sólo se muestran los dumps producidos a fecha de hoy y el día anterior. Si deseamos acceder a un dump más antiguo deberemos pulsar la opción Pasar a/Sel. Dump breve. A continuación nos aparecerá una pantalla de selección donde podremos filtrar por fecha, usuario, máquina, mandante.

Interpretando los dumps

Tanto si visualizamos los dumps producidos a fecha actual, como del día anterior o alguna fecha más antigua, éstos aparecerán en forma de lista. Esta lista está formada por los siguientes campos:

Fecha del dump
Hora del dump
Servidor de aplicaciones donde se ha producido
Usuario que ha provocado el dump
Breve descripción del dump
Haciendo doble clic en cada uno de ellos accederemos al log del Gump donde tendremos toda la información. El contenido de todos los dumps están organizados en las siguientes secciones:

1. ¿Qué sucedió? .
Sección donde se explica brevemente el error.

2. ¿Qué se puede hacer? .
Sección que explica brevemente las acciones a llevar a cabo.

3. Análisis error .
Sección donde se explica más detalladamente el error. Es una extensión de la sección 1.

4. Notas para corregir errores .
Sección donde se explica más detalladamente las acciones a llevar a cabo. Es una extensión de la sección 2.

5. Entorno sistema .
Sección donde aparecen las variables del sistema más importantes, tales como la versión de SAP, nombre del servidor, dirección IP, sistema operativo, RDBMS, versión del kernel, etc. . .

6. Usuario, transacción.
Sección donde aparece el usuario que ha generado el dump, programa que se estaba ejecutando, transacción, idioma, etc. . .

7. Informaciones lugar terminación .
Sección donde se especifica la linea del programa donde se ha producido el error.

8. Detalle código fuente .
Sección que muestra un intervalo del código fuente donde se ha producido el error. La línea donde se ha producido el error aparece marcada con una flecha.

9. Contenido campos sistema.
Sección donde se muestran los valores que tenían algunas variables del sistema cuando se produjo el error.

10. Variables seleccionadas .
Sección donde se detalla más exhaustivamente el contenido de más variables cuando se produjo el error .

11. Llamadas / Eventos activos.
Sección que detalla el evento o la llamada a la que pertenece la línea de código que ha producido el error .

12. Notas internas .
Sección que detalla la función C –perteneciente al kernel de SAP– donde se ha producido el error .

13. Llamadas activas kernel SAP .
Sección que detalla los elementos del kernel y su posición que estaban activos en el momento del error .

14. Lista programas ABAP involucrados .
Sección que muestra los programas involucrados en la ejecución del programa que produjo el error .

15. Lista tablas internas .
Sección que detalla el conjunto de tablas internas que se estaban procesando en el momento del error y el contenido de su cabecera cuando el error se produjo.

16. Directorio tablas aplicación (contenidos) .
Sección que detalla las tablas de aplicación que han sido usadas durante la ejecución del programa que ha terminado en error.

17. Directorio ámbitos datos (info gestión) .
Sección que detalla el conjunto de objetos del workbench ( variables, parámetros, tablas) involucradas en la ejecución del programa.

18. Directorio ámbitos datos (contenidos).
Sección de contenido parecido a la anterior .

19. ABAP/4 Bloques control CONT .
Sección con información complementaria a la de la sección 8 .

20. Fin análisis error tiempo ejecución .
Sección que marca el fin del log del dump. Si bien el título de cada sección aparece en el idioma de conexión, el contenido sólo se encuentra disponible en inglés y en alemán. Si nos
conectamos al sistema en un idioma distinto del inglés y alemán, el Gump será visualizado en el idioma configurado como de suplementación, que en general será el inglés, sino se ha definido suplementación de idioma (esto pertenece a la instalación de lenguajes) se visualizará en el idioma original de SAP, que es el alemán. Las secciones más importantes y que más nos pueden ayudar para  solucionar el error son la 1,3,7 y 8.

Ejemplo de log de Gump

Errores tiempo ejecución SYNTAX_ERROR
ocurrido el 20.07.2000 a 04:10:06
----------------------------------------------------------
Syntax error in program "AQ99HA==========CAND1========= ".
----------------------
> Qué sucedió ?
----------------------
The following syntax error occurred in the program
AQ99HA==========CAND1========= :
"The data object "T750B" does not have a component called "PERNR".
"The current ABAP/4 program "AQ99HA==========CAND1========= " had
to be terminated because one of the statements could not be
executed.
This is probably due to an error in the ABAP/4 program.
--------------------------------
> Qué se puede hacer ?
--------------------------------
Please eliminate the error by performing a syntax check
(or an extended program check) on the program
"AQ99HA==========CAND1========= ".
You can also perform the syntax check from the ABAP/4 Editor.
If the problem persists, proceed as follows:
Print out the error message (using the "Print" function)
and make a note of the actions and input that caused the
error.
To resolve the problem, contact your SAP system administrator.
-----------------
Análisis error
-----------------
The following syntax error was found in the program
AQ99HA==========CAND1========= :
"The data object "T750B" does not have a component called "PERNR".
------------------------------------
Notas para corregir errores
------------------------------------
Probably the only way to eliminate the error is to correct
the program.
-
If you cannot solve the problem yourself, please send the
following documents to SAP:
1. A hard copy print describing the problem.
To obtain this, select the "Print" function on the current screen.
-
2. A suitable hardcopy printout of the system log.
To obtain this, call the system log with Transaction SM21
and select the "Print" function to print out the relevant
part.
3. If the programs are your own programs or modified SAP programs,
supply the source code.
To do this, you can either use the "PRINT" command in the
editor or print the programs using the report RSINCL00.
4. Details regarding the conditions under which the error occurred
or which actions and input led to the error.
----------------------
Entorno sistema
----------------------
SAP Release.............. "40B"
Application server....... "prodsap1"
Network address.......... "10.190.20.13"
Operating system......... "AIX"
Release.................. "3"
Hardware type............ "000541934C00"
Database server.......... "sa3dbh2r"
Database type............ "ORACLE"
Database name............ "SP1"
Database owner........... "SAPR3"
Character set............ "es_ES.ISO8859-1"
SAP kernel............... "40B"
Created on............... "Nov 4 1999 01:44:15"
Created in............... "AIX 2 4 004218294C00"
Database version......... "ORACLE 8.0.0.4"
Patch level.............. "542"
Patch text............... " "
Supported environment....
Database................. "ORACLE 8"
SAP database version..... "40B"
Operating system......... "AIX 2, AIX 1, AIX 3"
-------------------------------
Usuario, transacción....
-------------------------------
Client.............. 111
User................ "116665u"
Language key........ "S"
Transaction......... " "
Program............. "AQ99HA==========CAND1========= "
Screen.............. "SAPMSSY0 1000"
Screen line......... 6
-------------------------------------------
Informaciones lugar terminación
-------------------------------------------
The termination occurred in the ABAP/4 program
"AQ99HA==========CAND1========= " in " ".
The main program was " ".
The termination occurred in line 0 of the source code of
program " " (when calling the editor 00).
The program "AQ99HA==========CAND1========= " was started as a
background job.
------------------------------------
Contenido campos sistema
------------------------------------
Campo SY Contenido....... Campo SY Contenido...........
-------- ---------------- -------- --------------------
SY-SUBRC 0 SY-INDEX 0
SY-TABIX 0 SY-DBCNT 0
SY-FDPOS 0 SY-LSIND 0
SY-PAGNO 0 SY-LINNO 1
SY-COLNO 1
--------------------------------
Variables seleccionadas
---------------------------------
No existe ninguna información en el dump.
-------------------------------------
Llamadas / Eventos activos
-------------------------------------
No Tipo Nombre Programa Include Línea
-------------------------------------------------------
1 ??? ??? ??? ??? 0
-----------------
Notas interna
------------------
The termination occurred in the function "ab_genprog" of the SAP
Basis System, specifically in line 845 of the module "abgen".
The internal operation just processed is " ".
Program name.........: "AQ99HA==========CAND1========= ".
Error message........: "The data object "T750B" does not
have a component called "PERNR". ".
----------------------------------------
Llamadas activas kernel SAP
----------------------------------------
AixStack at 0x100c3cb0
CTrcStack at 0x100c3fa0
rabax_CStackSave at 0x100683f0
ab_rabax at 0x1006f270
ab_genprog at 0x103fd33c
newload at 0x100dd164
ab_LoadProg at 0x100dd518
ab_dialg at 0x103558f0
dy_cdiag at 0x101fd310
ab_submit at 0x104ee7a8
ab_retdynp at 0x10351794
ab_run at 0x104eda34
dynpmcal at 0x104d62cc
dynppai0 at 0x104d7aec
dynprctl at 0x104d8cd0
dynpen00 at 0x104c0f30
Thdynpen00 at 0x100b4f14
TskhLoop at 0x100b9d7c
8.2. CONCEPTO DE DUMP 101
tskhstart at 0x100c2404
DpMain at 0x10016bb4
main at 0x100011fc
------------------------------------------------
Lista programas ABAP involucrados
------------------------------------------------
--------------------------------------------------------------
No existe ninguna información en el dump.
----------------------------
Lista tablas internas
---------------------------
No existe ninguna información en el dump.
------------------------------------------------------
Directorio tablas aplicación (contenidos)
------------------------------------------------------
Programa
Nombre........ Cont.....1....+....2....+....3....+....
---------------------------------------------------------
---------------------------------------------------
Directorio ámbitos datos (info gestión)
---------------------------------------------------
Programa
No.. Nombre........ Long Ofsg Tipo Next Fecha gen. H.gen.
---------------------------------------------------------------
0 not assigned 0 0 INVL 0
1 /%_LISTTABLES 6968 0 COMM 0
2 global stack 65536 0 GLST 0
--------------------------------------------------
Directorio ámbitos datos (contenidos)
--------------------------------------------------
Programa
No.. Nombre... Cont.....1....+....2....+....3....+....
---------------------------------------------------------
?
0 not assigned <initial>
1 /%_LISTTABLES |\0\0\00\0\0\0\0\0\0\0\0\0\0\0\0\0\
2 global stack | 0000
-----------------------------------------
ABAP/4 Bloques control CONT
-----------------------------------------
No existe ninguna información en el dump.
----------------------------------------------
Fin análisis error tiempo ejecución
----------------------------------------------

1 comentario:

  1. Hola Amparo,

    Tengo este problema en Mexico, con una regulacion llamada anexo 24, nuestro proveedor hizo un update para agregar unos campos para el manejo de cuentas bancarias, al llenar este catalogo y despues de otra actualizacion, se borro la informacion de los nuevos campos previamente llenada, si nosotros no lo hicimos y el proveedor dice que no lo hizo, como podria comprobar esto en log o consulta en el SAP, solo soy usuario pero si me puedes ayudar seria grandioso
    Saludos Gabriel Bandala gabriel.bandala@rav.com.mx

    ResponderEliminar