Pergunta
· 13 hr atrás

Problemas com Lock em algumas tabelas no IRIS

Olá, boa tarde,


Em nosso sistema temos um processo de cópia, que basicamente é responsável por copiar um conjunto de dados de algumas tabelas no banco e replicar para novos registros no banco de dados.

Já utilizamos essa mesma funcionalidade com o banco de dados Posrgresql e funciona normalmente, porém quando utilizamos com o IRIS temos alguns erros relacionados a LOCK, por exemplo:

[Location: <ServerLoop>]
[%msg: <Unable to acquire lock for UPDATE of table 'SQLUser.dlfolder' on row with RowID = '4148'>]
00:00:36,890 ERROR [org.hibernate.engine.jdbc.batch.internal.BatchingBatch] (BackgroundTaskExecutor_87) HHH000315: Exception executing batch [could not execute batch]
00:00:36,890 INFO  [stdout] (BackgroundTaskExecutor_87) 2025-02-13 00:00:36.890 ERROR [BackgroundTaskExecutor_87] BasePersistenceImpl.java:256 Caught ORMException: org.hibernate.exception.GenericJDBCException: could not execute batch
00:00:36,892 INFO  [stdout] (BackgroundTaskExecutor_87) 2025-02-13 00:00:36.892 WARN  [BackgroundTaskExecutor_87] EntidadeLocalServiceImpl.java:793 
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) com.liferay.portal.SystemException: com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: could not execute batch
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) 	at com.liferay.portal.service.persistence.impl.BasePersistenceImpl.processException(BasePersistenceImpl.java:267) ~[target2-impl.jar:na]
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) 	at com.liferay.portlet.documentlibrary.service.persistence.DLFolderPersistenceImpl.updateImpl(DLFolderPersistenceImpl.java:348) ~[target2-impl.jar:na]
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) 	at com.liferay.portlet.documentlibrary.service.persistence.DLFolderPersistenceImpl.update(DLFolderPersistenceImpl.java:275) ~[target2-impl.jar:na]
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) 	at com.liferay.portlet.documentlibrary.service.persistence.DLFolderPersistenceImpl.update(DLFolderPersistenceImpl.java:325) ~[target2-impl.jar:na]
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) 	at com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl.addFolder(DLFolderLocalServiceImpl.java:116) ~[target2-impl.jar:na]
00:00:36,893 INFO  [stdout] (BackgroundTaskExecutor_87) 	at com.liferay.portlet.documentlibrary.service.impl.DLFolderLocalServiceImpl.addFolder(DLFolderLocalServiceImpl.java:72) ~[target2-impl.jar:na]

 

[%msg: <Unable to acquire lock for UPDATE of table 'SQLUser.objetivo' on row with RowID = '31'>]
00:01:06,474 ERROR [org.hibernate.engine.jdbc.batch.internal.BatchingBatch] (BackgroundTaskExecutor_84) HHH000315: Exception executing batch [could not execute batch]
00:01:06,474 INFO  [stdout] (BackgroundTaskExecutor_84) 2025-02-13 00:01:06.474 ERROR [BackgroundTaskExecutor_84] BasePersistenceImpl.java:256 Caught ORMException: org.hibernate.exception.GenericJDBCException: could not execute batch
00:01:06,530 INFO  [stdout] (BackgroundTaskExecutor_84) 2025-02-13 00:01:06.530 ERROR [BackgroundTaskExecutor_84] EntidadeLocalServiceCustomTxImpl.java:144 
00:01:06,530 INFO  [stdout] (BackgroundTaskExecutor_84) com.liferay.portal.SystemException: com.liferay.portal.kernel.dao.orm.ORMException: org.hibernate.exception.GenericJDBCException: could not execute batch
00:01:06,530 INFO  [stdout] (BackgroundTaskExecutor_84) 	at com.liferay.portal.service.persistence.impl.BasePersistenceImpl.processException(BasePersistenceImpl.java:267) ~[target2-impl.jar:na]
00:01:06,530 INFO  [stdout] (BackgroundTaskExecutor_84) 	at br.com.facilit.portlet.planooperativo.service.persistence.ObjetivoPersistenceImpl.updateImpl(ObjetivoPersistenceImpl.java:639) ~[target2-impl.jar:na]
00:01:06,530 INFO  [stdout] (BackgroundTaskExecutor_84) 	at br.com.facilit.portlet.planooperativo.service.persistence.ObjetivoPersistenceImpl.update(ObjetivoPersistenceImpl.java:566) ~[target2-impl.jar:na]
00:01:06,530 INFO  [stdout] (BackgroundTaskExecutor_84) 	at br.com.facilit.portlet.planooperativo.service.persistence.ObjetivoPersistenceImpl.update(ObjetivoPersistenceImpl.java:616) ~[target2-impl.jar:na]
00:01:06,531 INFO  [stdout] (BackgroundTaskExecutor_84) 	at br.com.facilit.portlet.planooperativo.service.impl.ObjetivoLocalServiceImpl.updateObjetivo(ObjetivoLocalServiceImpl.java:1110) ~[target2-impl.jar:na]
00:01:06,531 INFO  [stdout] (BackgroundTaskExecutor_84) 	at br.com.facilit.portlet.planooperativo.service.impl.ObjetivoLocalServiceImpl.updatePageOwner(ObjetivoLocalServiceImpl.java:1118) ~[target2-impl.jar:na]


Esse erro ocorre quando há mais de uma cópia sendo feita simultanemanente. Além disso, percebemos erros de locking, em outras operações mais básicas como edição de registros.

No postgreSql não observamos esse erro ocorrendo. Desse modo, gostaria de compartilhar estes logs com vocês e ver se poderiam nos ajudar e contribuir com alguma possível configuração no Iris, a fim de evitar os erros de locking.

Obs: Já estamos fazendo tratamento em nível de código, porém os erros persistem em ocorrer.

 

Desde já muito obrigado.

Product version: IRIS 2024.1
$ZV: IRIS for UNIX (Red Hat Enterprise Linux 8 for x86-64) 2024.1 (Build 262U)
Discussão (1)1
Entre ou crie uma conta para continuar