legacy-knowledge-base
公開されました Jul. 2, 2025

6.2 から 7.0 または 7.1 へのアップグレード後の SocialActivitySet テーブルでの DataIntegrityViolationException

投稿者

Alfonso Crisci

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 6.2から7.0または7.1に移行した後、移行したWebコンテンツを編集・保存する際に、サーバ内で以下のようなスタックトレースが発生することがあります。
ERROR L [liferay/async_service-1][ParallelDestination:55] Unable to process message {destinationName=liferay/async_service, response=null, responseDestinationName=null, responseId=null, payload=com.liferay.portal.internal.messaging.async.AsyncProcessCallable@e0266c0, values={defaultLocale=en_US, companyId=(redacted), groupId=0, principalName=(redacted), permissionChecker=com.liferay.portal.kernel.util.TransientValue@317356d7, siteDefaultLocale=en_US, themeDisplayLocale=en_US}}
com.liferay.portal.kernel.messaging.MessageListenerException: java.lang.RuntimeException: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into SocialActivitySet (groupId, companyId, userId, createDate, modifiedDate, classNameId, classPK, type_, extraData, activityCount, activitySetId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [INFONET71.SYS_C0015750]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:32)
at com.liferay.portal.kernel.messaging.InvokerMessageListener.receive(InvokerMessageListener.java:74)
at com.liferay.portal.kernel.messaging.ParallelDestination$1.run(ParallelDestination.java:52)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask._runTask(ThreadPoolExecutor.java:752)
at com.liferay.portal.kernel.concurrent.ThreadPoolExecutor$WorkerTask.run(ThreadPoolExecutor.java:664)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into SocialActivitySet (groupId, companyId, userId, createDate, modifiedDate, classNameId, classPK, type_, extraData, activityCount, activitySetId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [(redacted).SYS_C0015750]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at com.liferay.portal.internal.messaging.async.AsyncProcessCallable.call(AsyncProcessCallable.java:61)
at com.liferay.portal.internal.messaging.async.AsyncMessageListener.doReceive(AsyncMessageListener.java:32)
at com.liferay.portal.kernel.messaging.BaseMessageListener.receive(BaseMessageListener.java:26)
... 5 more
Caused by: org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; SQL [insert into SocialActivitySet (groupId, companyId, userId, createDate, modifiedDate, classNameId, classPK, type_, extraData, activityCount, activitySetId) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [(redacted).SYS_C0015750]; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:660)
at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:800)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:671)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:765)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:734)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor._commit(DefaultTransactionExecutor.java:164)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor._execute(DefaultTransactionExecutor.java:211)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:94)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:113)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:130)
at com.liferay.portal.spring.aop.ChainableMethodAdvice.invoke(ChainableMethodAdvice.java:55)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:130)
at com.liferay.portal.internal.messaging.async.AsyncProcessCallable.call(AsyncProcessCallable.java:47)
... 7 more
Caused by: org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:96)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at com.liferay.portal.dao.orm.hibernate.event.NestableFlushEventListener.onFlush(NestableFlushEventListener.java:61)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133)
at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:663)
... 17 more
Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint ((redacted).SYS_C0015750) violated

at oracle.jdbc.driver.OraclePreparedStatement.executeLargeBatch(OraclePreparedStatement.java:10032)
at oracle.jdbc.driver.T4CPreparedStatement.executeLargeBatch(T4CPreparedStatement.java:1364)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:9839)
at oracle.jdbc.driver.OracleStatementWrapper.executeBatch(OracleStatementWrapper.java:234)
at com.zaxxer.hikari.pool.ProxyStatement.executeBatch(ProxyStatement.java:125)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeBatch(HikariProxyPreparedStatement.java)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 25 more

環境への配慮

  • ライフレイDXP 7.0
  • Liferay DXP 7.1

決議

  • 少なくとも、de-73-7010 (7.0 DXP) または dxp-7-7110 (7.1 DXP) をインストールして、移行を繰り返します。
  • 移行が既に正常に完了しており、それを繰り返す機会がない場合は、サポートチケットを開き、LPS-73786とLPS-82695のアップグレード後の修正を内部参照で依頼してください。"LPP-34208"

追加情報

  • 根本的な原因は、 com.liferay.counter.kernel.model.CounterSocialActivitySetのものよりも 小さい であることです。
    select * from counter;
    select max(activitySetId) from SocialActivitySet;
    コンテンツを追加すると、 SocialActivitySet テーブルに行が追加されます。 DataIntegrityViolationException がスローされるのは、カウンターの currentIdSocialActivitySet テーブルの activitySetId. もしCounterの値がactivitySetIdよりも小さい場合は、衝突が発生している可能性が高いです。
did-this-article-resolve-your-issue

legacy-knowledge-base