Análisis de Dumps

18

Click here to load reader

Transcript of Análisis de Dumps

Page 1: Análisis de Dumps

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

Page 2: Análisis de Dumps

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.

Page 3: Análisis de Dumps

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

Page 4: Análisis de Dumps

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.

Page 5: Análisis de Dumps

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.

Page 6: Análisis de Dumps

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.

Page 7: Análisis de Dumps

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

Page 8: Análisis de Dumps

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 .

Page 9: Análisis de Dumps

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 .

Page 10: Análisis de Dumps

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).

Page 11: Análisis de Dumps

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

Page 12: Análisis de Dumps

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.

-

Page 13: Análisis de Dumps

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....

Page 14: Análisis de Dumps

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

Page 15: Análisis de Dumps

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

Page 16: Análisis de Dumps

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....+....

---------------------------------------------------------

---------------------------------------------------

Page 17: Análisis de Dumps

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