CA7 TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.termalabs.common.hibernate.jaws.JobRun
search cancel

CA7 TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.termalabs.common.hibernate.jaws.JobRun

book

Article ID: 259535

calendar_today

Updated On:

Products

Automation Analytics & Intelligence

Issue/Introduction

AAI - CA7 Jammer stopped with errors below in log.

 

2022/10/06 19:51:37.712 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: com.termalabs.common.hibernate.jaws.JobRun
 at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:242)
 at org.hibernate.type.EntityType.getIdentifier(EntityType.java:430)
 at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:101)
 at org.hibernate.persister.collection.AbstractCollectionPersister.writeElement(AbstractCollectionPersister.java:777)
 at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1165)
 at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)
 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
 at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
 at com.termalabs.common.connection.hibernate.GenericSessionImpl.flush(GenericSessionImpl.java:362)
 at com.termalabs.server.cache.jobrun.RunUpdateImpl.commitJobRuns(RunUpdateImpl.java:395)
 at com.termalabs.server.cache.jobrun.RunUpdateImpl.commitChanges(RunUpdateImpl.java:190)
 at com.termalabs.server.cache.jobrun.RunUpdateImpl.commit(RunUpdateImpl.java:177)
 at com.termalabs.server.ca7.CA7Jammer.commitRunUpdateBatch(CA7Jammer.java:632)
 at com.termalabs.server.ca7.CA7Jammer.submitJobRunsAndPredecessorsToBuilder(CA7Jammer.java:469)
 at com.termalabs.server.ca7.CA7Jammer.processRuns(CA7Jammer.java:363)
 at com.termalabs.server.system.RunCycle$JammerRunner.runJammer(RunCycle.java:1029)
 at com.termalabs.server.system.RunCycle$JammerRunner.run(RunCycle.java:1011)
 at com.termalabs.server.system.RunCycle.compute(RunCycle.java:281)
 at com.termalabs.server.system.CommonJammerSequence.runCycle(CommonJammerSequence.java:225)
 at com.termalabs.server.system.CommonJammerSequence.runJammerSequence(CommonJammerSequence.java:158)
 at com.termalabs.server.system.JammerSequence.run(JammerSequence.java:136)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:750)

 

 

2022/10/06 19:51:38.040 ERROR [JDBCExceptionReporter] Violation of PRIMARY KEY constraint 'XPKJobRun_PredJobRun'. Cannot insert duplicate key in object 'dbo.JobRun_PredJobRun'. The duplicate key value is (XXXXX,XXXXX).

 

 

2022/10/06 19:51:38.040 ERROR [JDBCExceptionReporter] Violation of PRIMARY KEY constraint 'XPKJobRun_PredJobRun'. Cannot insert duplicate key in object 'dbo.JobRun_PredJobRun'. The duplicate key value is (XXXXX,XXXXX).

 

 

2022/10/06 19:51:38.040 ERROR [JDBCExceptionReporter] Violation of PRIMARY KEY constraint 'XPKJobRun_PredJobRun'. Cannot insert duplicate key in object 'dbo.JobRun_PredJobRun'. The duplicate key value is (AYOwWrkQKJE=, AYOwWrkBHfI=).

 

2022/10/06 19:51:38.040 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session: org.hibernate.exception.ConstraintViolationException: could not insert collection: [com.termalabs.common.hibernate.jaws.JobRun.predecessors#UUID[AYOwWrkQKZE=]]
 at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94)
 at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
 at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1205)
 at org.hibernate.action.CollectionRecreateAction.execute(CollectionRecreateAction.java:58)
 at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263)
 at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:171)
 at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
 at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
 at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
 at com.termalabs.common.connection.hibernate.GenericSessionImpl.timedCommit(GenericSessionImpl.java:377)
 at com.termalabs.common.connection.hibernate.GenericSessionImpl.commit(GenericSessionImpl.java:254)
 at com.termalabs.server.cache.jobrun.RunUpdateImpl.retryCommit(RunUpdateImpl.java:233)
 at com.termalabs.server.cache.jobrun.RunUpdateImpl.commitChanges(RunUpdateImpl.java:205)
 at com.termalabs.server.cache.jobrun.RunUpdateImpl.commit(RunUpdateImpl.java:177)
 at com.termalabs.server.ca7.CA7Jammer.commitRunUpdateBatch(CA7Jammer.java:632)
 at com.termalabs.server.ca7.CA7Jammer.submitJobRunsAndPredecessorsToBuilder(CA7Jammer.java:469)
 at com.termalabs.server.ca7.CA7Jammer.processRuns(CA7Jammer.java:363)
 at com.termalabs.server.system.RunCycle$JammerRunner.runJammer(RunCycle.java:1029)
 at com.termalabs.server.system.RunCycle$JammerRunner.run(RunCycle.java:1011)
 at com.termalabs.server.system.RunCycle.compute(RunCycle.java:281)
 at com.termalabs.server.system.CommonJammerSequence.runCycle(CommonJammerSequence.java:225)
 at com.termalabs.server.system.CommonJammerSequence.runJammerSequence(CommonJammerSequence.java:158)
 at com.termalabs.server.system.JammerSequence.run(JammerSequence.java:136)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
 at java.util.concurrent.FutureTask.run(FutureTask.java:266)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
 at java.lang.Thread.run(Thread.java:750)
Caused by: java.sql.BatchUpdateException: Violation of PRIMARY KEY constraint 'XPKJobRun_PredJobRun'. Cannot insert duplicate key in object 'dbo.JobRun_PredJobRun'. The duplicate key value is (XXXXX,XXXXX).
 at net.sourceforge.jtds.jdbc.JtdsStatement.executeBatch(JtdsStatement.java:1106)
 at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:2544)
 at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
 at org.hibernate.jdbc.BatchingBatcher.addToBatch(BatchingBatcher.java:56)
 at org.hibernate.persister.collection.AbstractCollectionPersister.recreate(AbstractCollectionPersister.java:1168)
 ... 26 more

 

 

Environment

Release : 6.4.3

Resolution

Fix delivered in 6.4.5 release.

 

A work around may be to remove some of the oldest CA7 RPT70 files from the from the CA7 data directory and see if the next jammer cycle completes without error.