¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Solução de erro de inserção de dados no portal SAP com DB2 - Causas e possíveis soluções

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

Olá,

Temos um sistema de portal (nw04s, sp11) em aix 5.2.8 e db2 v8.2.2 (fixpak 10) onde o relatório de atividade no portal não está mais sendo executado. Nos arquivos de log do portal, podemos ver o seguinte erro. Alguma ideia do motivo pelo qual o portal não consegue inserir os dados?

Saudações,

Alexander

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

22.08.2007 08:00:44.131 ERRO Ocorreu um erro SQL na conexão b0d02t02:PP2:SAPPP2DB: código=-805, estado="51002", mensagem="Erro SQL do DB2: SQLCODE: -805, SQLSTATE: 51002, SQLERR

MC: NULLID.SYSLH103 0X5359534C564C3031";

22.08.2007 08:00:44.174 ERRO Exceção durante a agregação

22.08.2007 08:00:44.174 ERRO Exceção durante a agregação.

22.08.2007 08:16:37.500 ERRO ID da exceção:08:16_22/08/07_0016_14024663

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

4 Respuestas

0
Cargando...

Olá, Alexander

Ver nota 823019.

Atenciosamente, Dmitry

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

Olá Alexander,

Sim, isso se encaixa com minha teoria. Por padrão, o DB2 pode lidar com cerca de 1600 objetos preparedStatement abertos simultaneamente por conexão.

Saudações,

Frank

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

Olá Frank,

É um aplicativo da SAP. Coleta informações do usuário. Quantos usuários estão conectados, etc. Temos um portal com 50000 usuários definidos. Talvez tenhamos atingido o máximo. Da última vez que verificamos, 1500 usuários estavam conectados ao mesmo tempo. Abri um chamado para a SAP. Obrigado pela ajuda.

Alexander

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

Olá, Alexander,

Isso geralmente acontece quando um aplicativo abre um grande número de objetos PreparedStatement e não os fecha corretamente. Por favor, consulte a nota 733671. Você pode tentar resolver o problema aumentando o número máximo de objetos abertos que uma conexão pode lidar, conforme descrito na nota, mas geralmente isso é um problema do aplicativo.

Se for um aplicativo padrão da SAP, por favor abra uma mensagem OSS no componente correspondente. Se este aplicativo for próprio, verifique seu código. Recentemente vi um erro na codificação do aplicativo usando "SAP Open SQL for Java".

Tente

{

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

pinsert.set...

pinsert.executeUpdate();

pinsert.close();

}

catch (...)

{

/* lidar com duplicatas e outros erros de SQL */

....

}

Neste caso, cada erro de SQL (não grave) como um registro duplicado (SQL0803) deixa um objeto preparedStatement ativo aberto. Como o "SAP Open SQL for Java" armazena esses objetos em buffer, eles não são fechados automaticamente ou removidos pelo coletor de lixo. Portanto, essa codificação cria um vazamento de objetos preparedStatement.

O problema pode ser evitado fechando o Statement em um bloco "finally".

Saudações,

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?