Avalados por :

Solución de error de inserción de datos en portal SAP con DB2 - Causas y posibles soluciones

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...

Hola,

Tenemos un sistema de portal (nw04s, sp11) en aix 5.2.8 y db2 v8.2.2 (fixpak 10) donde el informe de actividad en el portal ya no se está ejecutando. En los archivos de registro del portal podemos ver el siguiente error. ¿Alguna idea de por qué el portal no puede insertar los datos?

Saludos,

Alexander

22.08.2007 08:00:43.362 ERROR 100: PreparedStatement = INSERT INTO WCR_USERSTAT (TIMESTAMPHOUR,AGGREGATIONLEVEL,HASHEDUSERID,USERTYPE,LOGONID) VALUES (? , ? , ? , ? , ?)

22.08.2007 08:00:44.131 ERROR Se produjo un error SQL en la conexión b0d02t02:PP2:SAPPP2DB: código=-805, estado="51002", mensaje="Error SQL de DB2: SQLCODE: -805, SQLSTATE: 51002, SQLERR

MC: NULLID.SYSLH103 0X5359534C564C3031";

22.08.2007 08:00:44.174 ERROR Excepción durante la agregación

22.08.2007 08:00:44.174 ERROR Excepción durante la agregación.

22.08.2007 08:16:37.500 ERROR ID de excepción:08:16_22/08/07_0016_14024663

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola, Alexander

Ver nota 823019.

Saludos cordiales, Dmitry

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Alexander,

Sí, esto encaja con mi teoría. Por defecto, DB2 puede manejar alrededor de 1600 objetos preparedStatement abiertos simultáneamente por conexión.

Saludos

Frank

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Frank,

Es una aplicación de SAP. Recopila información de usuario. Cuántos usuarios están conectados, etc. Tenemos un portal con 50000 usuarios definidos. Tal vez alcanzamos un máximo. La última vez que trabajamos, 1500 usuarios estaban conectados al mismo tiempo. He abierto un llamado a SAP. Gracias por la ayuda.

Alexander

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hola Alexander,

Esto suele ocurrir si una aplicación abre un gran número de objetos PreparedStatement y no los cierra correctamente. Por favor, consulta la nota 733671. Puedes intentar solucionar el problema aumentando el número máximo de objetos abiertos que puede manejar una conexión según se describe en la nota, pero típicamente este es un problema de la aplicación.

Si se trata de una aplicación estándar de SAP, por favor abre un mensaje OSS en el componente correspondiente. Si esta aplicación es propia, revisa tu código. Recientemente vi un error en la codificación de la aplicación utilizando "SAP Open SQL for Java".

Intenta

{

PreparedStatement pinsert = con.prepareStatement("INSERT ...");

pinsert.set...

pinsert.executeUpdate();

pinsert.close();

}

catch (...)

{

/* manejar duplicados y otros errores de SQL */

....

}

En este caso, cada error de SQL (no grave) como un registro duplicado (SQL0803) deja abierto un objeto preparedStatement activo. Dado que "SAP Open SQL for Java" almacena en búfer tales objetos, no se cierran automáticamente ni se eliminan por el recolector de basura. Por lo tanto, esta codificación crea una fuga de objetos preparedStatement.

El problema se puede evitar cerrando el Statement en un bloque "finally".

Saludos

Frank

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?