Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
• There is a separate sapstartsrv process for each instance, which is Abajo hay un extracto del perfil de instancia de SAP.
responsible for starting, stopping, and monitoring the instance. On the right
side, there is
• SAP Host Agent also has its own SAPstart an extract of
• service. the SAP
El servicio de inicio de SAP es un elemento clave de los sistemas SAP a partir de SAP instance
NetWeaver 7.0. profile.
El proceso se llama sapstartsrv.exe en
Windows y sapstartsrv en plataformas UNIX.
Este proceso es un servicio en sistemas operativos Windows; La tercera captura de pantalla muestra los demonios del servicio de inicio de SAP del sistema que se ejecuta en Unix.
en sistemas operativos UNIX, está programado como un demonio.
The third
screenshot
Hay un proceso sapstartsrv separado para cada instancia, que es responsable de displays the SAP
iniciar, detener y monitorear la instancia. start service
daemons of the
SAP Host Agent también tiene su propio inicio de SAP system running in
Unix.
Servicio.
SAP start service as a Windows service or Unix daemon Every SAP system has its Cada sistema SAP
is running in the background and is not affected by any El servicio de inicio de SAP como servicio de Windows o Unix daemon se ejecuta own SAP start service. tiene su propio
SAP system stop en segundo plano y no se ve afectado por ninguna parada del sistema SAP servicio de inicio
SAP.
Even if you stop the SAP system, the SAP start service
Incluso si detiene el sistema SAP, el servicio de inicio de SAP permanecerá activo
will stay alive and continue running in the background,
y continuará ejecutándose en segundo plano, por lo que puede iniciar el sistema
so you can start the system again or monitor its
nuevamente o monitorear su estado de tiempo de ejecución. 2
runtime status.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Fundamentals of the SAP Start Service Cuando se inicia la instancia de SAP,
el servicio de inicio de SAP lee su contenido y ejecuta los pasos correspondientes.
Usage (2)
The sapstartsrv program reads the instance profile at the beginning. The When the SAP
profile defines which steps must be performed during thestart process, instance is
started,
and which processes of the instance are started by sapstartsrv.
the SAP start
service reads
The profile defines that the database should be started if it is not yet its content
running. and executes
the
Normally, the entries for the starting procedure in instance profiles are correspondin
not changed; if there are any changes, sapstartsrv needs to be g steps.
restarted.
There are separate entries for executing Hay entradas separadas para ejecutar pasos y
steps and for starting a program.
It is also specified that if the database is not
para iniciar un programa.
yet running, then it should be started. También se especifica que si la base de datos
aún no se está ejecutando, debería iniciarse.
In case of any changes made to these steps
in the instance profile, the SAP start service En caso de que se realicen cambios en estos
needs to be restarted.
pasos en el perfil de la instancia, el servicio de
inicio de SAP debe reiniciarse.
El servicio de inicio de SAP proporciona las siguientes funciones para monitorear sistemas,
instancias y procesos de SAP:
Comenzando y deteniéndose
Supervisión del estado de tiempo de ejecución
Lectura de registros, trazas, perfiles, archivos de configuración
Información técnica, como puertos de red, sesiones activas, listas de hilos, etc.
Estos servicios se proporcionan en el servicio web SOAP de SAPControl y son utilizados por
herramientas de monitoreo de SAP, como SAP Microsoft Management Console (SAP
MMC) o SAP Management Console (SAP MC).
Puede obtener la lista de todas las opciones y los llamados métodos web ejecutando
el comando "sapcontrol –h" o "sapcontrol".
When the SAP start Cuando se inicia el servicio de inicio de SAP (sapstartsrv),
service starts, it
se une a sus puertos HTTP y HTTPS.
binds to its HTTP
and HTTPS ports.
En la captura de pantalla, puede ver el archivo de registro (Log File) del servicio de inicio de SAP (sapstartsrv.log) de la
On the screenshot, you can see the logfile of the instancia 00. En este ejemplo,
SAP start service of instance 00.
In this example, port 50013 points to HTTP and
el puerto 50013 apunta a HTTP
50014 port to HTTPS. y el puerto 50014 a HTTPS
Puertos (2)
Si las funciones críticas ("métodos protegidos", como reiniciar una instancia) no se invocan
mediante una conexión confiable, requieren autenticación con un usuario y contraseña del
sistema operativo.
• En las plataformas UNIX, las conexiones confiables pasan por los sockets de dominio UNIX
(/tmp/.sapstream <port-no>)
We can divide the available WebMethods into They are critical in the sense that they can cause
two categories: Podemos dividir los WebMethods disponibles en dos categorías:
an unexpected unavailability of the system.
First, the WebMethods that just display 1. Primero, los métodos web que solo muestran información de
Such methods are, for example, to start, to stop,
monitoring information about the system. monitoreo sobre el sistema. Estos no son críticos. or to restart the system.
These are not critical.
Second, all other WebMethods fall in the 2. En segundo lugar, todos los demás WebMethods entran en la
category of critical.
categoría de críticos. Son críticos en el sentido de que pueden
causar una indisponibilidad inesperada
del sistema.
If critical WebMethods are called Si se llama a WebMethods críticos utilizando una Dichos métodos son, por ejemplo, para
using a trusted connection, they do
conexión confiable, no requieren autenticación iniciar, detener o reiniciar el sistema.
not require additional
authentication. adicional.
In other cases, the user needs to be En otros casos, el usuario necesita ser autenticado.
authenticated. Para la autenticación, es necesario un usuario del
For the authentication, an sistema operativo.
operating system user is necessary. 6
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Fundamentals of the SAP Start Service Due to this, an SAP instance is started
differently
Debido a esto, una instancia de SAP se inicia de manera diferente
dependiendo de si está utilizando plataformas UNIX o Windows.
Startup process (1) depending on whether you are using UNIX or
Windows platforms.
An SAP instance is started differently on UNIX and Windows platforms:
On UNIX, when the operating En UNIX, cuando se inicia el sistema operativo,
UNIX system is booted, it starts the inicia el script sapinit, que luego inicia el proceso sapstartsrv.
sapinit script, which then starts the
The startup procedure is initiated by the start service, which ideally is started by Cuando se está ejecutando sapstartsrv, el sistema SAP se puede
sapstartsrv process.
the sapinit script when the operating system is booted. When the sapstartsrv is running, the iniciar a través de él.
Afterwards, sapstartsrv triggers sapstartto start the system. SAP system can be started through
it.
The SAP start service definition is available in the /usr/sap/sapservices
file. From a technical perspective, operating systems are different.
Una instancia de SAP se inicia de manera diferente en las plataformas UNIX y Windows: Desde una perspectiva técnica, los sistemas operativos son diferentes.
UNIX
1. El servicio de inicio (sapstartsrv ) arranca el procedimiento de inicio, que idealmente lo inicia el
(script sapinit) cuando se inicia el sistema operativo.
2. Posteriormente, (sapstartsrv ) activa sapstart para iniciar el sistema.
La definición del servicio de inicio de SAP está disponible en el archivo / usr / sap / sapservices
Windows
On Windows, the start service is started automatically when the operating
system is booted. The instance is started directly by the start service.
Registro de Windows
Definición de
sapstartsrv
• It then starts the processes of the SAP instance, respecting the sequential
numbering of Start_Program_xx statements.
All of them
communicate with the Todos ellos se comunican con las instancias
instances of the SAP del sistema SAP a través del proceso
system through the sapstartsrv.
sapstartsrv process.
$ (DIR_GLOBAL) \ sapcontrol
Control Files According to the information stored in the De acuerdo con la información almacenada en el archivo de
control file, when you start the system, control (Control Files), cuando inicia el sistema,
the sapstartsrv process will be able to determine
which instances should be started, and in which
El proceso sapstartsrv podrá determinar qué instancias deben
order. iniciarse y en qué orden.
Herramientas de monitoreo
Las siguientes herramientas de monitoreo utilizan la interfaz del servicio web:
• SAP Microsoft Management Console (SAP MMC)
• Consola de gestión de SAP (SAP MC)
• SAPCONTROL: con sapcontrol
(nombre del proceso en Windows sapcontrol.exe) puede llamar a las funciones de la interfaz del servicio web
desde el campo de comando (CMD).
sapcontrol.exe
Common to these tools is that they all
use the Web services provided by the
SAP start service
SAP Microsoft Management Console is SAP Microsoft Management Console también se envía
also shipped
como un paquete de instalador estándar de Microsoft
as a fully self-contained standalone
standard Microsoft installer package. independiente totalmente autónomo.
This makes it very easy to install it on Esto hace que sea muy fácil instalarlo en cualquier PC con
any Windows PC. Windows.
The SAP snap-in for Microsoft Management Console, El complemento de SAP para Microsoft Management Console,
which is the graphical user interface to administer SAP systems, que es la interfaz gráfica de usuario para administrar sistemas SAP,
is installed by default with any SAP application server on Windows. 13
se instala de manera predeterminada con cualquier servidor de aplicaciones SAP en Windows.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Fundamentals of the SAP Start Service SAP Management Console is, by default, part of every SAP Management Console es, por defecto, parte de cada instalación de SAP.
SAP installation.
SAP Management Console (SAP MC) (1) It does not require additional installation steps, only a
No requiere pasos de instalación adicionales, solo un navegador web.
web browser.
SAP Management Console (SAP MC)
is an operating-system-independent application. SAP Management Console is an operating SAP Management Console es una aplicación independiente
system-independent application. del sistema operativo.
This allows you to display various information
on monitoring and perform administration tasks
such as start and stop operations
in the same interface on different operating systems.
The SAP MC is supplied as standard with the kernel, and is ready for use without
any additional installation.
La Consola de gestión de SAP (SAP MC) es una aplicación independiente del sistema operativo.
Esto le permite mostrar diversa información en monitoreo y realizar tareas de administración
como iniciar y detener operaciones
en la misma interfaz en diferentes sistemas operativos.
It is like SAP Microsoft Management Console, and has Es como SAP Microsoft Management Console, y tiene casi las mismas funciones disponibles.
almost the same functions available. 14
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Fundamentals of the SAP Start Service 2) Una vez establecida la conexión, aparecerá la interfaz gráfica y podrá administrar el sistema.
To start SAP
Management
Console just call
the HTTP or HTTPS
port of the SAP
start service.
1) Para iniciar
SAP
Management
Console,
simplemente
llame al puerto
HTTP o HTTPS
del servicio de
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 15
inicio de SAP.
Fundamentals of the SAP Start Service Puede ver algunos de los ejemplos de cómo se usa en las capturas de pantalla.
SAPControl
You can see
SAPControl is part of the kernel, and is available on all operating systems. some of the
examples of
Calling sapcontrol, without any other options, provides the syntax description. how it is used
in the
SAPControl allows screenshots.
the Web services of the sapstartsrv processes to be addressed.
Such methods are, for example:
Start, Stop, Restart Instance to operate,
GetProcessList to display the process list of an SAP instance,
StartService,
StopService
or RestartService to operate the SAP start service itself, and many more.
SAPControl
SAPControl es parte del kernel y está disponible en todos los sistemas operativos.
Llamar a sapcontrol, sin ninguna otra opción, proporciona la descripción de la
sintaxis.
SAPControl permite
Acceder a los servicios web de los procesos de sapstartsrv
Tales métodos son, por ejemplo:
Start, Stop, Restart la instancia para operar,
GetProcessList para mostrar la lista de procesos de una instancia de SAP,
StartService,
StopService
o RestartService
para operar el servicio de inicio de SAP en sí, y muchos más.
16
Sapcontrol is also part of the kernel just like SAP Management Console. Sapcontrol también es parte del Kernel al igual que SAP Management Console.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Week 1: Startup, Dispatcher, and Enqueue Services
Unit 2: Common SAP Startup Issues
Common SAP Startup Issues Si el sistema está activo, debería aparecer verde en las herramientas de monitoreo, de lo contrario, algunos de los
How to identify? procesos podrían no estar ejecutándose.
Hay varias formas de identificar si un sistema SAP está total o parcialmente inactivo Another way is to
check the status of
Una de las formas es si los usuarios se quejan de la falta de disponibilidad del sistema. the system using
Esto significa que no pueden iniciar sesión en el sistema SAP. monitoring tools
De esta manera, trabajar con el sistema es imposible. we have already
seen in Unit 1.
There are several ways to
identify whether an SAP
system is completely or
partially down
One of the ways is if the
users are complaining about
unavailability of the system.
This means, they cannot log
in to the SAP system.
This way, working with the
system is impossible.
SAP start service not running / cannot start • El servicio de inicio de SAP no se ejecuta / no puede iniciarse
• La instancia de SAP no puede iniciarse
SAP instance cannot start
sapstartsrv(.exe) doesn’t exist / corrupt / has zero size On Windows, you can check the availability of the En Windows, puede verificar la disponibilidad del ejecutable y su
executable and its size with the file explorer, and by tamaño, con el explorador de archivos, y haciendo doble clic,
1. Check if sapstartsrv(.exe) exists and its size: double-clicking, you can also validate if it is working
también puede validar si funciona correctamente.
correctly.
ON WINDOWS: by file explorer $(DIR_EXECUTABLE)\sapstartsrv.exe
ON UNIX: by ‘ls -al $(DIR_EXECUTABLE)/sapstartsrv’
2. Validate sapstartsrv(.exe):
ON WINDOWS: by double-clicking it, a dialog window should appear
ON UNIX: by calling ‘file $(DIR_EXECUTABLE)/sapstartsrv’ the type ‘executable’ should
appear in output; bit version (32 | 64) and operating system should also match the host
appear in the profile and match the instance of SAP Puede verificar si el perfil de instancia existe
en Windows y Unix de la manera habitual,
system
es decir,
en el Explorador de archivos en Windows
Servicio de inicio de SAP (5)
y en la línea de comandos para Unix.
el perfil no existe / tiene entradas incorrectas
1. Compruebe si existe el perfil:
EN WINDOWS: por el explorador de archivos
EN UNIX: por "ls –al $ (DIR_PROFILE) / <profile>"
2. Revisa el contenido:
con un editor de texto para ver si es legible, no se permiten entradas extrañas
($ _:% = / # son caracteres válidos)
si
SAPSYSTEMNAME (SID, por ejemplo, TSL)
SAPSYSTEM (número de instancia, por ejemplo, 00)
INSTANCE_NAME (instancia, por ejemplo, DVEBMGS00)
aparecer
© 2017en
SAPel
SEperfil y affiliate
or an SAP coincidir con
company. la instancia
All rights del sistema SAP
reserved. ǀ PUBLIC 2
4
Common SAP Startup Issues It is important that the adm user, and Es importante que el usuario adm,
on Windows also SAPService user have y en Windows también el usuario SAPService
SAP start service (6) execute rights on the sapstartsrv
process.
tengan derechos de ejecución en el proceso sapstartsrv.
Authorization Issues
ON WINDOWS:
Problemas de autorización
EN WINDOWS:
compruebe si SAP_ <SID> _ * Los grupos de administradores tienen "Leer y ejecutar“
derechos sobre sapstartsrv.exe
Los usuarios <sid> adm y SAPService <SID> son parte de estos grupos
EN UNIX:
compruebe si sapstartsrv es propiedad de <sid> adm con derechos de ejecución
ON UNIX: When starting sapstartsrv, it needs to create HTTP Al iniciar sapstartsrv, necesita crear sockets HTTP y HTTPS y
socket or lock file doesn't exist / cannot be created or accessed and HTTPS sockets and access the lock file of the
sapstartsrv process.
acceder al archivo de bloqueo del proceso sapstartsrv.
When starting sapstartsrv, it needs to create... Los sockets y los archivos de bloqueo normalmente pertenecen
The sockets and lock files normally belong to the
/tmp/.sapstream5<instancenumber>13 (HTTP) socket adm user, whose access rights you can see in the al usuario adm, cuyos derechos de acceso puede ver en el lado
right side of the slide. derecho de la diapositiva.
/tmp/.sapstream5<instancenumber>14 (HTTPS) socket
... or access
/tmp/.sapstartsrv<instancenumber>_sapstartsrv.log lock file
Check if
they are owned by <sid>adm user
the access rights are correct (rwx for sockets, rw for lock)
/tmp has the sticky-bit set (rwt)
Comprobar si
• son propiedad de <sid> adm user
• los derechos de acceso son correctos (rwx para sockets, rw para lock)
• / tmp tiene el conjunto de bits fijos (rwt)
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 2
7
Common SAP Startup Issues . Servicio de inicio de SAP (9)
SAP start service (9) EN UNIX:
sapservices no existe / tiene entradas incorrectas
ON UNIX: Cada servicio de inicio de SAP local se inicia automáticamente al iniciar el sistema operativo
según la definición en / usr / sap / sapservices.
sapservices doesn’t exist / has incorrect entries sapcontrol también usa el archivo sapservices para iniciar o detener el servicio de inicio de instancias de SAP.
Every local SAP start service is started automatically at operating system boot
as per the definition in /usr/sap/sapservices. Comprobar si:
El archivo existe
sapcontrol also uses sapservices file to start or stop the SAP start service of puede ser leído por <sid> adm (requerido para operaciones sapcontrol) y por root (requerido para operaciones sapinit
instances. en el arranque)
La definición de biblioteca, sapstartsrv y la ruta de perfil son correctas y existen
Check if: la ruta del perfil debe ser / usr / sap / <SID> / SYS / profile / <instanceprofile>
file exists
can be read by <sid>adm (required for sapcontrol operations) and by root This file is required for starting up the Este archivo (sapservices) es necesario para iniciar el proceso sapstartsrv
(required for sapinit operations at boot) sapstartsrv process when the operating system
cuando se inicia el sistema operativo, y esto también es necesario para
boots, and this is also required to manage SAP
library definition, sapstartsrv, and profile path are correct and exist start service by sapcontrol. gestionar el servicio de inicio de SAP mediante sapcontrol.
profile path must be /usr/sap/<SID>/SYS/profile/<instanceprofile>
It must exist and users adm and root must Debe existir y los usuarios adm y root deben
be able to read its content. poder leer su contenido.
Another specific issue on Unix is that the Otro problema específico en Unix es
sapservices file does not exist or has que el archivo sapservices no existe o
incorrect entries.
tiene entradas incorrectas.
By increasing sapstartsrv trace, or by using sapcontrol’s debug option, you Al aumentar el rastreo de sapstartsrv, o al usar la opción de
can get further helpful information about the nature of the problem. depuración de sapcontrol, puede obtener más información útil
sobre la naturaleza del problema
To be able to start an SAP instance, you need to Para poder iniciar una instancia de SAP, debe asegurarse de que
make sure that SAP start service is running.
el servicio de inicio de SAP se esté ejecutando.
You can check it in the task manager or command line using sapcontrol calls,
for example, GetProcessList or AccessCheck Start. Puede verificarlo en el administrador de tareas o en la línea de comandos utilizando llamadas sapcontrol, por
ejemplo, GetProcessList o AccessCheck Start.
Even if everything looks OK at this point, it may happen that the SAP instance
still will not start. Incluso si todo se ve bien en este punto, puede suceder que la instancia de SAP todavía no se inicie.
We will now check the most common reasons for this behavior.
Ahora revisaremos las razones más comunes para este comportamiento.
startsap script is available only for Unix, but it El script startsap solo está disponible para Unix, pero no debe usarse
should not be used
a partir del lanzamiento de NetWeaver 7.40.
as from the NetWeaver 7.40 release.
Check: La configuración
service/protectedwebmethods = ALL|NONE|DEFAULT|SDEFAULT predeterminada es
It should be set to SDEFAULT (to its default value) SDEFAULT, que no
debe cambiar.
See also
927637 – Web service authentication in sapstartsrv as of Release 7.00
Second, SAP system will only start up if the En segundo lugar, el sistema SAP solo se iniciará si la secuencia
startup sequence is correct. de inicio es correcta.
PAS
AAS
ASCS
ERS
BD
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3
4
Common SAP Startup Issues The status of the instance that
others depend on, must be
Third, the startup sequence is not correct.
It could happen that the instance which others depend on, did not start yet, which prevents the next instance from
SAP instance (5) GREEN in the monitoring tools starting.
before the subsequent The corresponding error messages appear either in the dispatcher trace or in the work process trace files.
an instance hasn’t started (yet) that others depend on instances start.
Tercero, la secuencia de inicio no es correcta.
The corresponding error is, for example: El estado de la instancia de Podría suceder que la instancia de la que dependen otros aún no se haya iniciado, lo que impide que se
la que dependen otros debe
in dev_disp inicie la siguiente instancia.
ser VERDE en las Los mensajes de error correspondientes aparecen en la traza del despachador o en los archivos de
*** ERROR => DpTriggerMsAttach: Attach to Message Server herramientas de monitoreo
failed in dev_wXX trace traza del proceso de trabajo.
antes de que comiencen las
*** ERROR => EncNiConnect: unable to connect instancias posteriores.
(NIECONN_REFUSED)
The status of the instance that others depend on must be ‘GREEN’ before starting
further instances; you cancheck this with the above sapcontrol calls.
On Unix,
the process list will display what En Unix,
profile is used by the SAP start la lista de procesos mostrará qué perfil usa
service.
el servicio de inicio de SAP.
You can then check if the Luego puede verificar si el perfil correcto está en
correct profile is in use, and
you can check the content by
uso, y puede verificar el contenido utilizando un
using a text editor. editor de texto.
• Error:
SI_EPORT_INUSE / NIESERV_USED
• Use lsof or netstat to find what is blocking aport.
• See also
TCP/IP Ports of All SAPProducts
1845121 – Address already in use – how to find the Process listening on port ...
You can find a self-explanatory error message in the developer trace files. Puede encontrar un mensaje de error autoexplicativo en los archivos de seguimiento del desarrollador.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 3
7
Common SAP Startup Issues. Lista de Puertos
SAP instance port is in use
You can order them by date and scan the newest ones for Puede ordenarlos por fecha y escanear los más nuevos en
any error message. busca de cualquier mensaje de error.
Most probably, the newest ones will be the most helpful. Standard trace files of the message server
Lo más probable es que los más nuevos sean los más útiles.
You can also review sapstart and sapstartsrv logs or stderr
También puede revisar los registros
files.
Also, to get further details of the error, sapstart y sapstartsrv o los archivos stderr.
you can increase the trace level using parameter Standard trace files of the dispatcher
rdisp/TRACE. Además, para obtener más detalles del error,
puede aumentar el nivel de rastreo con
el parámetro rdisp / TRACE.
Standard trace files of SAP workprocesses
39
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Common SAP Startup Issues
Troubleshooting Archives
Standard error files of SAP workprocesses during STDERR# Archivos de error estándar de Work Process durante el Inicio de SAP
Startup
Trace files of the startup processes – located in Sapstart.trc Archivos de Ratreo de los Procesos de Inicio, Localizados en el Directorio /home/<SID>adm
/home/<SID>adm directory
Standard trace files of the message server Dev_ms Archivos de rastreo estándar del servidor de mensajes (Message Server)
Standard trace files of the dispatcher Dev_disp Archivos de rastreo estándar del Despachador (Dispatcher)
Standard trace files of SAP workprocesses Dev_w## Archivos de rastreo estándar de los Work Process
40
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Week 1: Startup, Dispatcher, and Enqueue Services
Unit 3: Introduction to Dispatcher Queues
Introduction to Dispatcher Queues Work processes are used to process ABAP
programs,
Los Work Process se utilizan para procesar programas ABAP,
and also every work process has a local queue y también cada WP tiene una cola local para procesar solicitudes directamente o para
Old concept prior to SAP NetWeaver 7.40 for processing requests directly or for procesar solicitudes asíncronas, como las respuestas de RFC asíncronas.
processing asynchronous ones, like responses
The Dispatcher: In responsible
El Dispatcher: es responsable del inicio y la from asynchronous RFCs.
for application server startup
and monitoring, supervisión del servidor de aplicaciones,
and comunicates with other In prior versions to 7.40, requests to those services En versiones anteriores a 7.40, solicitudes a esos
y se comunica con otros componentes del servidor
application server components, were first sent to the dispatcher,which assigned them to servicios primero fueron enviados al despachador, que
de aplicaciones y el servidor de mensajes.
and the message server. an appropriate work process. los asignó a un WP apropiado.
Veamos las diferencias:
Let us see the differences:
With Netweaver 7.40 has been a renovation for the dispatcher and taskhandler
Con Netweaver 7.40 ha habido una renovación para el despachador y el administrador de tareas 4
2
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to Dispatcher Queues Before release 7.40, the requests were queueing
in the dispatcher queue, until they were Antes del lanzamiento 7.40, las solicitudes eran encoladas, en la cola del
dispatched to the correspondent work process. despachador, hasta que fueran enviadas al WP correspondiente.
New concept
With NetWeaver 7.40 release, a flexible
mechanism for the request queues has been Con la versión NetWeaver 7.40, se ha agregado un mecanismo flexible
A flexible request queue mechanism: added. There can be many queues that can be para las colas de solicitudes.
created dynamically. Puede haber muchas colas que se pueden crear dinámicamente.
Queues can be created/destroyed dynamically Multiple processes can listen to the same queue, Múltiples procesos pueden escuchar la misma cola,
and also a process can acquire the queue in an y también un proceso puede adquirir la cola de manera exclusiva
Multiple processes can listen to the same queue exclusive way
A process can acquire a queue for exclusive use
Processes can attach/detach to the queue infrastructure dynamically The object to trigger an activity
El objeto para desencadenar una
inside an application server is a
request. actividad dentro de un servidor de
How do you use the new request queues? aplicaciones es una solicitud.
Create one queue for each session
Work processes listen to different queues and take new requests Those new request queues are
when they are free handled in the following way: Each
work process has its own queue.
Sessions can specify which kind of requests they can currently process For each ABAP session, a queue will Esas nuevas colas de solicitud se manejan de la siguiente
be created. This session is called manera:
Communication partners do not have to take care of whether a ABAP session queue. • cada WP tiene su propia cola.
session is active in a work process or not • Para cada sesión ABAP, se creará una cola. Esta sesión se
There is a total number of requests
which can be kept by all the queues. llama cola de sesión ABAP.
And there is no maximal length for a • Hay un número total de solicitudes que pueden ser
Nuevo concepto single queue, so one queue might mantenidas por todas las colas.
consume all the request slots. • Y no hay una longitud máxima para una sola cola, por lo
Un mecanismo de cola de solicitud flexible: que una cola puede consumir todos los espacios de
• Las colas se pueden crear / destruir dinámicamente solicitud.
• Múltiples procesos pueden escuchar la misma cola
• Un proceso puede adquirir una cola para uso exclusivo
• Los procesos pueden conectarse / desconectarse a la infraestructura de la cola de forma dinámica
¿Cómo utiliza las nuevas colas de solicitud?
• Crea una cola para cada sesión
• Los WP escuchan diferentes colas y toman nuevas solicitudes cuando están libres
• Las sesiones pueden especificar qué tipo de solicitudes pueden actualizar o procesar
• Los socios de comunicación no tienen que ocuparse de si una sesión está activa en un WP o no
4
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
3
Introduction to Dispatcher Queues All the activities in the ABAP
application server are associated with
Todas las actividades en el servidor de aplicaciones ABAP están
asociadas con las sesiones.
the sessions. Sessions may be long-
Request queues overview Each session has Cada sesión lived ones, like the traditional SAP GUI
Las sesiones pueden ser:
its own queue. tiene su propia sessions, 1. De larga duración, como las sesiones tradicionales de SAP GUI,
cola. or short-lived ones, like a stateless 2. Ó de corta duración, como una solicitud HTTP sin estado.
Processes have their own queue
HTTP request. Sessions can be Las sesiones se pueden identificar de forma única por su clave de sesión,
Dispatcher / Gateway / ICM identified uniquely by their session y podemos ver eso en las transacciones SM50 y SM04.
key, and we can see that in the SM50
Work process queues (each of which is handled by the dedicated and SM04 transactions.
work process)
The dispatcher queue – priority queues for session queues. There are three types of queues.
A new concept came with These three types of queues could be checked in the following way:
Session request queues NetWeaver 7.40, the embryo
Each session has its own queue (handled by any free work queues. La cola del despachador: colas de prioridad para las colas de sesión.
process of proper type) when executing the request Hay tres tipos de colas. (High, Medium, Low)
by the update work process.
Estos tres tipos de colas se pueden verificar de la siguiente manera:
Embryo queues: 1 for each worker type; sessions are only
created when requests are processed Un nuevo concepto vino
con NetWeaver 7.40, las Agent queues:
Dispatch queues colas de embriones. For these queues no dispatching is Colas de agente: (Agents Queues)
needed. Para estas colas no se necesita despacho.
When a session queue is not attached to a work process, it is al ejecutar la solicitud por el
Only a notification is needed to wake
WP de actualización Solo se necesita una notificación para despertar al
added to a “dispatch queue”. up the assigned agent or process. agente o proceso asignado.
There are 3, one for each session priority: high, medium, low. These queues are created and
acquired at the application server
Estas colas se crean y adquieren al inicio del servidor
startup. de aplicaciones.
Resumen de colas de solicitud Adding a request to one of those Para Agregar una solicitud a una de esas colas
queues no necesita agregar la cola a la cola de la sesión.
Los procesos tienen su propia cola. does not need to add the queue to Enviar una notificación es todo lo que necesitamos
• Despachador / Gateway / ICM the session queue. hacer para despertar al agente asignado.
• Colas del WP (cada una de las cuales es manejada por el WP dedicado) Sending a notification is all we need
to do to wake up the assigned agent.
Colas de solicitud de sesión
• Cada sesión tiene su propia cola (manejada por cualquier WP libre del tipo
Estas sesiones solo se crean cuando se procesan las
adecuado) These sessions are only created solicitudes.
• Colas de embriones (Embryo queues): 1 para cada tipo de WP; las when the requests are En casos como la creación de solicitudes de
sesiones solo se crean cuando se procesan las solicitudes processed. In cases like update
request creation,
actualización,
Despacho de colas allocating a session at that asignar una sesión en ese momento podría consumir
• Cuando una cola de sesión no está adjunta a un WP, se agrega a una "cola moment might consume all the todos los espacios de sesión.
de despacho“ (dispatch queue). session slots. To avoid this, the Para evitar esto, las solicitudes se colocan en la cola
• Hay 3, uno para cada prioridad de sesión: alta, media, baja. requests are placed in the de embriones,
embryo queue, y se crea la sesión
and the session is created
4
4
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to Dispatcher Queues
Monitoring of request queues (1)
4
5 ǀ PUBLIC
© 2017 SAP SE or an SAP affiliate company. All rights reserved.
Introduction to Dispatcher Queues Session request queues and session request mask
Monitoring of request queues (2) Colas de solicitud de sesión y máscara de solicitud de sesión
6
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to Dispatcher Queues As we already explained, there are
some queues handled by a dedicated Como ya explicamos, hay algunas colas manejadas por un proceso
Request dispatching process. dedicado.
If the request is added to a queue Si la solicitud se agrega a una cola sin que un proceso la vea,
without a process watching it, there is se enviará una notificación a todos los Work Process en espera.
Finding session queues for processing: a notification sent to all the waiting
work processes. Cuando el WP recibe la notificación,
Each work process has to find the session queues that need to be processed. When the work process receives the comprueba la cola de sesión que contiene solicitudes de su propio tipo,
notification, it checks the session
Request processing should be “fair”: queue containing requests from its
luego marca la cola "en uso"
own type, then marks the queue “in
y procesa la solicitud.
– Requests for sessions of the same kind are expected to be handled in order of use” and processes the request.
arrival.
– Requests for some sessions should have higher or lower priority (GUI or batch
processing). If a work process waits for
requests, Si un WP espera solicitudes,
it will first handle requests from primero manejará las solicitudes de las colas de sesión.
Dispatch queues (queues of session queues): session queues.
Are observed by the work processes First the ones with high Primero los que tienen alta prioridad,
priority, after that the
luego las solicitudes con prioridad normal,
There are three such queues for three priorities: high, medium, low requests with normal priority,
and finally requests with y finalmente las solicitudes con prioridad Baja.
Solicitud de Despacho priority Low. Además, con la prioridad, se pueden asignar algunos atributos al
Additionally, with the priority manejo de solicitudes.
Encontrar colas de sesión para procesar: some attributes can be
• Cada WP tiene que encontrar las colas de sesión que deben procesarse. assigned to the request
• El procesamiento de la solicitud debe ser "justo": handling.
o Se espera que las solicitudes de sesiones del mismo tipo se tramiten en orden de
llegada.
o Las solicitudes para algunas sesiones deben tener mayor o menor prioridad (GUI o
procesamiento por lotes).
7
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to Dispatcher Queues Depending of the request type, there
are three priorities, so the requests
Dependiendo del tipo de solicitud, hay tres prioridades, por lo que las
solicitudes se procesan por orden de prioridad como se mencionó
Priorities as of 7.4x Normally the priority is associated during logon. are processed by order of priority as
mentioned before: anteriormente:
Normalmente, la prioridad se asocia durante el inicio de sesión First looking for the waiting requests 1. Primero buscando las solicitudes de espera dentro de la cola de alta
inside the high priority queue, prioridad, (high priority )
High: request from UI (by default only SAP GUI) Second for the ones inside the normal
priority queue,
2. Segundo para los que están dentro de la cola de prioridad normal, (normal
and afterwards for the low priority priority)
Medium: all other requests (HTTP, RFC) queue. 3. y luego para la cola de baja prioridad (low priority).
4
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
8
Introduction to Dispatcher Queues Other configuration changes
in this NetWeaver 7.40 Otros cambios de configuración en esta versión de NetWeaver 7.40 son el nuevo
parámetro
Configuration changes release are the new
parameter rdisp / high_load_quota
rdisp/high_load_quota para mejorar el sistema de despacho interno.
High load quota: to improve the system
internal dispatching.
Protect the request queue from being flooded by requests for a certain worker type
Configuration via profile parameter A server sends a “high load” Un servidor envía un mensaje de "carga alta" para un tipo de WP a
message for a worker type to all todos los demás servidores de aplicaciones en el sistema, cuando:
rdisp/high_load_quota Default: load=90, queue=5 other application servers in the • el 90% de todos los WP de este tipo están ocupados en los
system when 90% of all work últimos 20 segundos
processes of this type are busy in
Cuota de carga alta:
the last 20 seconds or 5% of all the
• o el 5% de todos los espacios de cola (queue slots) están
Proteja la cola de solicitudes de ser inundada por solicitudes, para un determinado tipo de WP queue slots are occupied by a ocupados por un solicitud de este tipo.
Configuración mediante parámetro de perfil request of this type.
rdisp / high_load_quota Valor predeterminado: carga = 90, cola = 5
Also, another new parameter has been added. This is called
rdisp/task_limit.
it has been introduced to describe the number of open tasks
that can exist for each session.
the dispatcher when severe errors occurs in the 1.Primero: al iniciar un apagado forzado.
First: When starting a hard shutdown.
instancelike: Second: In case of exhausted resources. 2. Segundo: en caso de agotamiento de recursos.
Third: In case of a deadlock handling. 3. Tercero: en caso de un manejo de punto muerto.
hard shutdown The kernel triggers a deadlock handling El Kernel desencadena un manejo de punto muerto si todos los WP están en
if all work processes are in a state of HOLD.
exhausted resources estado de RETENCIÓN. Para romper este posible punto muerto,
To break this potential deadlock,
Las sesiones involucradas deben ser canceladas.
deadlock handling the involved sessions should be canceled.
Luego, antes de hacer esto, se creará una instantánea.
Then before doing this, a snapshot will be
icm/gateway crash created. 4. Cuarto: en caso de un Work Process, icman o bloqueo de gateway.
Fourth: In case of a work process, icman, or 5. Quinto: si el procesamiento de la solicitud se bloquea durante más de 300
They are written in several steps: gateway crash. segundos.
Fifth: If request processing hangs for more
The dispatcher writes all the accessible information to its trace file than 300 seconds.
Aquí estamos en un
sistema, en un
sistema de prueba
CST.
Transaction SM50:
>Administration
-> Snapshot
-> and then Administration
Y en el seguimiento del
despachador aquí,
podemos ver también
cómo se ha registrado la
información de la
instantánea.
All the information about the dispatcher queues Toda la información sobre las colas de
All the information about the dispatcher that we talked about in the previous unit, here we despachadores de las que hablamos en la unidad
queues that we talked about in the can see that. anterior, aquí podemos ver eso.
previous unit, And also what running in this instance at that Y también lo que se está ejecutando en este caso
time. en ese momento.
Toda la información sobre las
colas de despachadores de las que
hablamos en la unidad anterior,
And here we see all
the dispatcher queues
at that time.
Lo exportaré a mi
escritorio. Aquí lo
tenemos.
Y aquí obtendremos
los que podemos
subir.
Y aquí,
obtendremos la
misma información
que vimos antes en
la traza respectiva.
De acuerdo, no vamos
a crear nada allí.
Así es como podemos
crear una instantánea
manualmente y
cargarla en la consola
de administración de
SAP.
Tools for Troubleshooting For problem analysis when processes or instances hang, it may be useful to also determine the call stack of the processes.
C stack (1) Para el análisis de problemas cuando los procesos o las instancias se bloquean,
puede ser útil determinar también la stack de llamadas de los procesos.
Can be obtained:
Via transaction SM50 Para obtener la stack de llamadas del proceso (Call Stack of the Process),
To get the call stack
of the process, you puede usar la transacción SM50,
Externally via executable “sapstack” sapstack <pid> can use transaction Seleccionar el WP afectado,
SM50, select the ir al panel de Administración
Unix: sapstack –tree <pid> affected work y elegir Escribir C stack.
process, go to the
Windows: Sapstack Global\SAP<SID>_<NR> Administration panel
and choose Write C
SAP Note 1964673 – C-Call stack análisis
Stack.
sapcontrol -nr <instance_number> -function GetCallstack <pid>
If you do not have access to the application server and you know the Si no tiene acceso al servidor de aplicaciones y conoce la ID del proceso,
process ID, you could use the sapstack standalone program as puede usar el programa independiente sapstack como se describe en la Nota SAP 1964673.
described in SAP Note 1964673.
Another option in this scenario is to use the SAPControl function Otra opción en este escenario es utilizar la función de SAP Control GetCallstack
GetCallstack or the SAP Microsoft Management Console o la consola de administración de Microsoft SAP
by right-clicking in a process as we will see in the next slide. haciendo clic derecho en un proceso como veremos en la siguiente diapositiva.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 6
4
En informática, una stack de llamadas es una estructura de datos de la stack que almacena información sobre las
Tools for Troubleshooting subrutinas activas de un programa de computadora.
Este tipo de stack también se conoce como stack de ejecución, stack de programa, stack de control, stack de
C stack (2). tiempo de ejecución o stack de máquina, y a menudo se acorta a "la stack".
Aunque el mantenimiento de la stack de llamadas es importante para el correcto funcionamiento de la mayoría del
software, los detalles normalmente están ocultos y son automáticos en lenguajes de programación de alto nivel.
SAP MMC, right-click a process: Muchos conjuntos de instrucciones de computadora proporcionan instrucciones especiales para manipular stacks.
Una stack de llamadas se usa para varios propósitos relacionados, pero la razón principal para tener una es hacer un
seguimiento del punto al que cada subrutina activa debe devolver el control cuando termina de ejecutarse.
Una subrutina activa es aquella que se ha llamado pero aún no se ha completado la ejecución, después de lo cual el
control debe devolverse al punto de llamada.
Tales activaciones de subrutinas pueden anidarse a cualquier nivel (recursivo como un caso especial), de ahí la
estructura de la stack
The functions where the work process hangs are the ones that can be seen below the entry
Las funciones donde se bloquea el WP son las que se pueden ver debajo de la entrada
66
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Tools for Troubleshooting The program Semwatch is provided to find out which work process is holding the semaphore
So now I am going to show you an example of the profile Así que ahora les voy a mostrar un ejemplo del perfil y el archivo de rastreo para la
and trace file for the Semwatch tool. herramienta Semwatch.
Let us have a look.
Dejanos darle un vistazo.
donde tenemos el
número de instancia
que queremos
monitorear.
Si no ingresamos
nada, obtendrá toda
la instancia en ese
host.
Podemos
verificar aquí así
como también
podemos definir
el tiempo.
Luego, si está
colgando, aquí
definimos el tiempo
que se enviará la señal
6 para el proceso que
contiene el semáforo.
Tendremos la
instancia que estamos
ejecutando, la ID del
proceso:
y cómo, si el WP no
se cancela,
obtendremos la
señal 9 para
cancelar.
The WebSevices executed via SAPControl to monitor the You already learned about this in Unit 1.
system should be restricted with the SAP profile parameter
“service/protectedwebmethods”. Ya aprendiste sobre esto en la Unidad 1
sapcontrol -nr <nr> -function GetProcessList
sapcontrol -nr 00 -function ABAPGetWPTable
sapcontrol -nr 00 -function GetQueueStatistic [-repeat -1 1]
SAPControl
Los WebSevices ejecutados a través de SAPControl para monitorear el
sistema deben restringirse con el parámetro de perfil de SAP
"service / protectedwebmethods"
You can use the Webserver interface Puede usar la interfaz sapcontrol del servidor web
sapcontrol to access these functions and para acceder a estas funciones y monitorear la
monitor the instance.
instancia.
74
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Tools for Troubleshooting /sdf/mon
/sdf/mon (1)
When there are some sporadic Cuando hay algunos problemas esporádicos de instancias colgantes o instancias
Collect snapshots of monitoring transactions and hanging instance issues, or hanging
colgantes durante un intervalo de tiempo específico, podría ser útil saber qué
store this information for later analysis instances during a specific time
programas se estaban ejecutando en ese momento.
interval, it could be useful to know
Via transaction which programs were running at that
time.
/sdf/mon Schedule New Monitoring
Recopile instantáneas de las transacciones de monitoreo y For this, we use transaction /sdf/mon
almacenar esta información para su posterior análisis that collects snapshots from the monitoring transaction and stores them for later analysis.
We go to transaction n/sdf/mon,
Vamos a la transacción n
/ sdf / mon,
Pero si miramos
unos minutos antes,
Esto es de ayer.
Y también podemos ver cómo se está
ejecutando para los diferentes días.
Week 1: Startup, Dispatcher, and Enqueue Services
Unit 5: Introduction to the Enqueue Service
Introduction to the Enqueue Server You might wonder why SAP needs its own locking mechanism, when all the databases have a locking functionality.
Enqueue functionality (1) Quizás se pregunte por qué SAP necesita su propio mecanismo de bloqueo, cuando todas las bases de datos tienen
una funcionalidad de bloqueo.
Locking of application objects (DB entries) against
concurrent access: La razón es que los bloqueos de la base de datos no son
The reason is, database locks are not transparent for
transparentes para la aplicación.
The application cannot react to DB locks but could get the application.
Cuando intenta acceder a una tabla, no sabe si está bloqueada
When it tries to access a table, it does not know if it is
blocked locked by another application. por otra aplicación.
The Enqueue server allows locking on application The SAP enqueue server allows the system to control El servidor en cola (Enqueue) de SAP permite que el sistema
the synchronization on the application level, controle la sincronización en el nivel de la aplicación,
level, independent from the database locks to keep independently from the restrictions of the database.
independientemente de las restricciones de la base de datos.
data consistency
The knowledge about the enqueue locks must be One SAP transaction typically consists of multiple Una transacción de SAP generalmente consta de múltiples
database transactions. transacciones de base de datos.
within a single instance: the “enqueue server”
These SAP locks, or SAP enqueues as we will call La aplicación maneja estos bloqueos de SAP,
them from now on, are handled by the application o las colas de SAP como los llamaremos a partir de ahora,
Funcionalidad Enqueue (1) explicitly, explícitamente,
and all the knowledge about it is in the enqueue
Bloqueo de objetos de aplicación (entradas de base de datos) contra acceso service.
y todo el conocimiento al respecto está en el servicio en
concurrente: cola.
La aplicación no puede reaccionar a los bloqueos de la base de datos, pero
podría obtener Bloqueo.
SAP enqueue entries are set and
Los programas de aplicación establecen
El servidor Enqueue deleted by the application
programs. y eliminan las entradas en cola de SAP.
permite el bloqueo en el nivel de la aplicación,
independiente de los bloqueos de la base de datos para mantener la consistencia
de los datos.
El conocimiento sobre los bloqueos en cola debe estar dentro de una sola
instancia: el "servidor en cola“ (The Enqueue server)
2
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server The changes made in a single dialog step are written to the database in a single database transaction.
Enqueue functionality (2) Los cambios realizados en un solo paso de diálogo se escriben en la base de datos en una sola
transacción de base de datos.
The application data is temporally stored in
Los datos de la aplicación se almacenan
the update tables, temporalmente en las tablas de actualización, Unlike a database transaction, an SAP A diferencia de una transacción de base de datos, una
to preserve the consistency of the para preservar la consistencia de los datos de la logical unit of work can span over several unidad de trabajo lógica de SAP puede abarcar varios
application data across the dialog steps. aplicación en los pasos del diálogo. dialog steps, and be executed using
pasos de diálogo y ejecutarse utilizando diferentes WP.
different work processes.
Let us review quickly the SAP transaction concept. Revisemos rápidamente el concepto de transacción de SAP.
Even if there is an error in the last Incluso si hay un error en el último módulo de actualización,
The statement COMMIT WORK update module,
closes the SAP transaction for the La instrucción COMMIT WORK cierra la transacción de SAP producirá una reversión para todos los demás módulos que
it will produce a rollback for all other
dialog part of the program and para la parte de diálogo del programa e inicia la parte de se ejecutaron antes
modules which ran before.
starts the update part. actualización.
Within the update part, all update Dentro de la parte de actualización, todos los módulos de
modules are processed in one actualización se procesan en una transacción de base de This needs to be granted for Esto debe otorgarse para la coherencia de los datos.
database transaction, to guarantee
datos, para garantizar la unidad lógica de trabajo. data consistency. 3
the logical unit of work.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server First, we see the Client and User Name who sets the lock. 1.Primero, vemos el Cliente y el Nombre de usuario que establece el bloqueo.
Second, the SAP Lock argument with the locked fields in the 2.En segundo lugar, el argumento SAP Lock con los campos bloqueados en la tabla
Enqueue parts database table. Each SAP logical unit of work has two enqueue
de la BD.
keys.
Parts of the enqueue logic They define the ownership during runtime and therefore the point 3.Cada unidad de trabajo lógica de SAP tiene dos claves en cola
Lock argument of time when they will be released. Definen la propiedad durante el tiempo de ejecución y, por lo tanto, el momento
Lock owners (dialog & update) en que se liberarán.
Backup flag If the first lock owner is set, the enqueue entry will not be
released at the COMMIT WORK statement in the dialog part, Si se establece el primer propietario del bloqueo, la entrada en cola no se
Cumulation counter
but at the end of the existence of the internal mode. liberará en la instrucción COMMIT WORK en la parte del diálogo, sino al final
Pure informational parts de la existencia del modo interno.
Client
User name If the second lock owner is set and only this one,
Si el segundo propietario del bloqueo está configurado y solo este,
Date, time, work process number, host name the SAP enqueue ownership is transferred to the session that is
running in the update process, la propiedad de la cola de SAP se transfiere a la sesión que se ejecuta en el
(encoded in enqueue owner)
and it will be released at the end of the V1 update processing. proceso de actualización, y se lanzará al final del proceso de actualización de V1.
Transaction code
Lock object name The date and the time does not indicate when the
lock was set. 4.La fecha y la hora no indican cuándo se configuró el bloqueo.
Partes de Enqueue
It is the start time of the SAP logical unit of work in 5. Es la hora de inicio de la unidad de trabajo lógica de SAP en la que se creó la entrada de bloqueo.
Partes de la lógica de la cola (enqueue logic) which the lock entry was created.
• Argumento de bloqueo
• Propietarios de bloqueos (diálogo y actualización) The Backup flag means 6.El Bakcup Flag significa que si COMMIT WORK
that if COMMIT WORK has already taken ya ha tenido lugar, la entrada en cola se copia
• Bandera de copia de seguridad place, the enqueue entry is copied to
• Contador de acumulación en el archivo de copia de seguridad.
the backup file.
Partes informativas puras So in case of an unexpected shutdown, Entonces, en caso de un apagado inesperado,
• Cliente the update records will be processed los registros de actualización se procesarán
• Nombre de usuario when the system restarts cuando el sistema se reinicie
• Fecha, hora, número de WP, nombre de host (codificado
en el propietario de la cola)
• Codigo de transacción The Cumulation Counter 7.El contador de acumulación muestra
• Bloquear nombre de objeto shows how often the owner
con qué frecuencia el propietario ya ha
has already set this enqueue.
configurado esta cola.
In this slide, you see the SAP enqueue parts
as they appear in SM12 transaction, selecting
lock entry details. 8.En el objeto de bloqueo tenemos la definición
In the Lock Object we have the
definition in the ABAP Data Dictionary en el diccionario de datos ABAP que contiene las
En esta diapositiva, verá las partes en cola tablas en las que los registros de datos deben
that contains the tables in which data
de SAP tal como aparecen en la records should be locked with the same bloquearse con el mismo bloqueo en cola.
transacción SM12, seleccionando los enqueue lock. 4
detalles de entrada de bloqueo © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server Requirements for high availability can now be much more easily met with the standalone enqueue server in the ASCS instance.
Los requisitos de alta disponibilidad ahora se pueden cumplir mucho más fácilmente con el servidor independiente en cola
Why standalone enqueue? en la instancia de ASCS.
High availability requirements of customers cannot be In this case, only message server, enqueue and gateway En este caso, solo se deben mover los procesos del message server,
fulfilled with old enqueue architecture processes need to be moved if a failover occurs. enqueue y la Gateway si se produce una conmutación por error.
The enqueue table is in shared memory, La tabla en cola está en memoria compartida,
Enqueue table in main memory which means that if there is a crash, the enqueue table is
lost.
lo que significa que si hay un bloqueo, se pierde la tabla en cola.
lost in case of a crash
single point of failure (SPOF) Then the current enqueues will be also lost, except the Entonces las colas actuales también se perderán, excepto las guardadas
ones saved in the backup file. en el archivo de copia de seguridad.
Demands
– eliminate all SPOFs The standalone enqueue server eliminates this single El servidor independiente en cola elimina este único punto de falla
point of failure
– based on standard technologies
– as few changes to enqueue library as possible To set a high-availability solution, now we have an ASCS Para configurar una solución de alta disponibilidad, ahora tenemos una
instance with the enqueue and the message server instancia de ASCS con los servicios en cola y el servidor de mensajes.
Idea: create in memory replica on backup host services. This solution includes the enqueue replication Esta solución incluye el servidor de replicación en cola.
server.
– in memory: due to performance requirements El procedimiento para implementar esto está estrechamente
The procedure to implement this is closely linked to the
installed cluster software. relacionado con el software de clúster instalado.
¿Por qué una cola independiente?
Los requisitos de alta disponibilidad de los clientes no se pueden cumplir con la
antigua arquitectura en cola
Poner en cola la tabla en la memoria principal
perdida en caso de accidente
punto único de falla (SPOF)
Demandas
• eliminar todos los SPOF
• basado en tecnologías estándar
• tan pocos cambios para poner en la biblioteca enqueue como sea posible
* Idea: crear en la réplica de memoria en el host de respaldo
- en memoria: debido a requisitos de rendimiento
5
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server The SAP application servers, that are the enqueue clients, and the enqueue server communicate directly.
This means there is a TCP connection between the work processes and the enqueue server.
Communication architecture Here you see the communication architecture for
the enqueue and the replication servers. Los servidores de aplicaciones SAP,
son los clientes en cola y el servidor en cola se comunica directamente.
Aquí puede ver la arquitectura de comunicación para la cola y los servidores de replicación. Esto significa que hay una conexión TCP entre los WP y el servidor en cola.
Ya no se comunican a
través del despachador y
Enqueue Replication
el servidor de mensajes. Client Enqueue Table
Table
Standalone
If the connection breaks down, it is Replication
reestablished after a defined period. Enqueue
Enqueue Server
Si la conexión se rompe, se Server
restablece después de un Client Enqueue
período definido.
Client
6
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server You can use transaction SM12, going to the tab Extras and then Diagnosis to
check where the enqueue server is located.
Puede usar la transacción SM12, vaya a la pestaña Extras y luego
Diagnóstico para verificar dónde se encuentra el servidor en cola.
The Enqueue table
To check the location of the enqueue As already mentioned, the SAP enqueue locks are stored in the enqueue table. This table is located in shared memory
server of the host where the enqueue service runs.
In fact, there are three sub-tables.
These are lock owners, arguments, and enqueues.
The size of the enqueue table is defined by the El tamaño de la tabla enqueue
parameter enqueue/table_size that should be está definido por el parámetro enqueue / table_size que
defined in the ASCS instance profile.
debe definirse en el perfil de instancia ASCS.
You can see the size information and the fill Puede ver la información de tamaño y el nivel de relleno de
level for each of those sub-tables. cada una de esas subtablas.
Area of (shared) memory that holds the enqueues; three Área de memoria (compartida) que contiene las colas;
Tres sub-tablas:
sub-tables:
1. Tablas de propietarios
Owner tables 2. Tablas de argumentos
3. Tablas de bloqueo
Argument tables
Tamaño de tabla definido por el parámetro
Lock table enque / table_size
Table size defined by parameter enque/table_size
Via the I/O thread the client If the replication connection goes down,
A través del hilo de E / S, el cliente Si la conexión de replicación se cae, se envían
receives the response. all pending enqueue responses are sent. 8
recibe la respuesta. todas las respuestas en cola pendientes. © 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server In the instance profile, we set the following ones:
enque/process_location that determines how to connect to the enqueue
En el perfil de instancia, establecemos los siguientes:
enque / process_location
Configuration The configuration has to be done in both sides: in the dialog instances – the server, the host where the enqueue server is placed and the instance
number are defined via parameters enque/serverhost and
que determina cómo conectarse al servidor equeue,
client side, and in the enqueue server side. el host donde se ubica el servidor en cola
enqeue/serverinst.
La configuración debe realizarse en ambos lados: enqueu/encni/port defines the TCP port where the enqueue server will y el número de instancia se define a través de los parámetros
en las instancias de diálogo: el lado del cliente y en el lado del servidor en cola. accept the requests. enque / serverhost y enqeue / serverinst.
enque/server/threadcount defines the number of I/O threads.
Enqueue Client And enqueue/table_size that we talked about on slide 7 enqueu / encni / port
define el puerto TCP donde el servidor en cola aceptará las
enque/process_location = REMOTESA In case of problems with the solicitudes.
connection,
enque/serverhost = <hostname of enque server> the client will try as many times as enque / server / threadcount
defined in parameter define el número de hilos de E / S.
enque/serverinst = <instance number> enque/con_retries.
Y enqueue / table_size
enque/encni/port = default: sapdp$(enque/serverinst) del que hablamos en la diapositiva 7, tamaño de tabla Enqueue
En caso de problemas con la
enque/con_retries * enque/con_timeout: conexión,
el cliente lo intentará tantas The period between those tries is El período entre esos intentos viene dado por
Enqueue Server veces como se define en el given by parameter el parámetro enque / con_timeout.
enque/con_timeout.
parámetro enque / con_retries. Este parámetro no debe ser demasiado
enque/server/max_clients This parameter should not be too
grande, por lo que los WP pueden conectarse
large, so the work processes can
enque/server/threadcount = <number of I/O threads> connect to the enqueue server as al servidor en cola tan pronto como esté
soon as it is available again. disponible nuevamente
enque/server/replication = [true|false]
enque/encni/repl_port On the enqueue server side, some important parameters are: En el lado del servidor en cola, algunos parámetros importantes son:
enque/table_size
Configuración: The enque/server/max_clients that defines the maximum number of El enque / server / max_clients que define el número máximo de
Cliente en cola parallel connections conexiones paralelas o clientes al servidor enqueue,
• enque / process_location = REMOTESA
or clients to the enqueue server,which must be at least the sum of all que debe ser al menos la suma de todos los WP de todas las
work processes of all instances in the system. instancias en el sistema.
• enque / serverhost = <nombre de host del servidor enque>
• enque / serverinst = <número de instancia>
• enque / encni / port = predeterminado: sapdp $ (enque / serverinst) The parameters to connect to the enqueue replication server, Los parámetros para conectarse al servidor de replicación en cola,
• enque / con_retries * enque / con_timeout: for example, the enque/encni/repl_port, are also important. por ejemplo, enque / encni / repl_port, también son importantes.
10
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Introduction to the Enqueue Server These function modules are grouped in
the function group SENA. Estos módulos de funciones están agrupados en el grupo de funciones SENA
Now let us go over some useful tips
Good to know when working with the enqueue server. And the program SAPLSENA is the Y el programa SAPLSENA es el programa que vemos en SM50 cuando ejecutamos
program we see in SM50 when running operaciones en cola.
Ahora veamos algunos consejos útiles cuando trabaje con el servidor en cola enqueue operations.
Lock object (SE11) Lock/Unlock function modules Form routine There is also the function module También está el módulo de función DEQUEUE_ALL que libera todas las colas de
in function group SENA SAPLSENA DEQUEUE_ALL that releases all the SAP SAP para una unidad lógica de trabajo.
enqueues for a logical unit of work.
Displaying trace files:
The trace files for the ASCS instance can Los archivos de rastreo para la instancia ASCS se pueden ver a nivel del sistema
SAP Microsoft Management Console: Windows SAP Management
be seen at operating system level. operativo.
Console
File ENQHISOVR (work directory) gives information about the One alternative to access the operating
top usages when an overflow of the enqueue table occurs SAP system is to use the SAP Management Una alternativa para acceder al sistema operativo es utilizar la consola de
Note 746138 – Analyzing lock table overflows Console administración de SAP
or the SAP Microsoft Management o la consola de administración de Microsoft SAP que aprendimos en las unidades
Console we learnt in the previous units anteriores de este curso
Bueno saber of this course.
• Bloquear objeto (SE11) Bloquear / Desbloquear módulos de función Rutina de
formulario en grupo de funciones SENA SAPLSENA One of the most common issues in Uno de los problemas más comunes en algunas instalaciones es el
• Mostrar archivos de rastreo: some installations is the enqueue desbordamiento de la tabla en cola.
SAP Microsoft Management Console: Windows SAP Management Console table overflow.
• El archivo ENQHISOVR (directorio de trabajo) proporciona información sobre los
usos principales cuando se produce un desbordamiento de la tabla en cola.
Nota SAP 746138 - Análisis de desbordamientos de la tabla de bloqueo
When you create a lock object, the Cuando crea un objeto de bloqueo, el sistema crea
system automatically creates two automáticamente dos módulos de funciones:
function modules: ENQUEUE and the ENQUEUE y el nombre del objeto de bloqueo para
name of the lock object to insert the insertar el objeto en la tabla en cola, luego el
object in the enqueue table, then the DEQUEUE y el nombre del objeto de bloqueo para
DEQUEUE and the lock object name
to remove the object inserted
eliminar el objeto insertado a través del módulo de
through the above function module. funciones anterior .
11
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC
Week 1: Startup, Dispatcher, and Enqueue Services
Unit 6: Enqueue Performance
Enqueue performance depends on multiple El Enqueue Performance o Rendimiento de Cola, depende de
Enqueue Performance factors and can be analyzed from two sides. múltiples factores y puede analizarse desde dos lados.
On the one hand, the communication part, and
Aspects of enqueue performance on the other the processing part, as shown Por un lado,
here. la parte de comunicación y, por otro,
Enqueue calls consist of a communication part and a processing part la parte de procesamiento, como se muestra aquí
Las llamadas en cola consisten en una parte de comunicación y una parte de procesamiento
• Identificar si el problema es un problema de comunicación o un problema de procesamiento
If a memory bottleneck occurs, the clients are informed about the memory shortage, and they
attempt to resend the request after a short break. Si se produce un cuello de botella en la memoria, se informa a los clientes sobre la falta de memoria e intentan reenviar la
In the developer trace files of the work processes you can see the messages “no memory for solicitud después de un breve descanso.
netdata conversion”. En los archivos de seguimiento del desarrollador de los WP, puede ver los mensajes
"sin memoria para la conversión de netdata".
That states that the enqueue server has an overload situation. This scenario is described in SAP
Note 92097.
Eso indica que el servidor en cola tiene una situación de sobrecarga. Este escenario se describe en la Nota SAP 92097.
The backup file is located in the file system, and the access to the disk could sometimes be slow. El archivo de respaldo se encuentra en el sistema de archivos, y el acceso al disco a veces puede ser lento.
If you configure the enqueue replication server, the backup file is not needed.
Si configura el servidor de replicación en cola, el archivo de copia de seguridad no es necesario.
© 2017 SAP SE or an SAP affiliate company. All rights reserved. ǀ PUBLIC 94
Enqueue Performance
Symptoms (1)
STAD Síntomas (1)
Verifique el tiempo de espera y cuenta en la Transaccion STAD
Check enqueue time and count in STAD En este ejemplo, vemos 13 llamadas en cola con un tiempo total de 81ms ( 81 / 13 )
In this example, we see 13 enqueue calls with a total time of 81ms 6.2ms per call 6.2ms por llamada
Good times per lock are below 2ms, including the network roundtrip. Los buenos tiempos por bloqueo son inferiores a 2 ms, incluida la red de ida y vuelta.
Then you should check for numbers which changed the most:
If the number of rejected records in the statistics increases faster,
it means there are several parallel requests over the same SAP enqueue lock.
If there are a high number of Read requests, the operations will need a lot more time to
run.
SM50/SM66 The main reasons for this scenario are, on the Las razones principales de este escenario son, por un lado, problemas
one hand, connection issues between the ABAP de conexión entre el servidor de aplicaciones ABAP y el servidor en
SAPLSENA running for long time in several work processes application server and the enqueue server, and cola, y por otro, cómo la aplicación maneja las colas.
on the other, how the application is handling the
Possible reasons: enqueues.
Disconnection with the enqueue server Esta diapositiva muestra un escenario común.
Enqueue handling by the application This slide shows a common scenario. En la transacción SM50, verá varios WP que parecen
In transaction SM50, you see several work atascados ejecutando el programa SAPLSENA.
processes that look stuck running program
SM50 / SM66 SAPLSENA. Como aprendimos en la unidad anterior, Este es el
SAPLSENA se ejecuta durante mucho tiempo en varios WP As we learned in the previous unit, conjunto de módulos para todos los módulos de
this is the module pool for all the enqueue funciones enqueue y dequeue
Posibles razones: and dequeue function modules.
• Desconexión con el servidor en cola El Work Process está ocupado por el programa SAPLSENA
The work process is occupied by program
• Manejo en cola por la aplicación hasta que el servidor en cola responda para confirmar o
SAPLSENA
until the enqueue server responds to rechazar la operación en cola
confirm or reject the enqueue operation.
On the client side (dev_w*, dev_disp) On the enqueue server side (dev_enq*)
Herramientas: Z_ENQUEUE_PERF
• Comprueba la configuración del servicio en cola
• Realiza una serie de pruebas de rendimiento para evaluar posibles cuellos de botella.
• Realiza una variedad de pruebas para detectar problemas conocidos.
y la instancia, y la
instancia de diálogo con
el ASCS, y también alguna
información sobre la
comunicación con el
sistema de archivos.
and also some information
about the communication
with the file system.
y también alguna
información sobre la
comunicación con el
sistema de archivos.
Entonces nos
pondremos verdes
cuando todo esté
bien, y tal vez
algunas
advertencias, en
este caso sobre este
acceso.
With this information, we can see possible connection
issues between the enqueue server and the dialog
instance.
Herramientas: enqt
Herramienta de prueba de línea de comando en cola
Puede actuar como cliente enqueue y puede adjuntarse a la tabla de
bloqueo productiva para el monitoreo
• puede hacer casi todo como las herramientas de prueba SM12
• utilizado para la supervisión a largo plazo del rendimiento en cola
(código de operación 8)
• podría comenzar con un perfil de cliente o con enqueue server profile,
según lo que desee
open@sap.com