It looks like the PooledLoOptimizer can become quite a bottleneck in some tests:
Contention statistics on the lock on {{org.hibernate.id.enhanced.OptimizerFactory$PooledLoOptimizer}}
||Stack Trace||Count||Duration|| |org.hibernate.id.enhanced.OptimizerFactory$PooledLoOptimizer.generate(AccessCallback)|1,079|23 s 690 ms| | org.hibernate.id.enhanced.TableGenerator.generate(SessionImplementor, Object) |1,079| 23 s 690 ms| | org.hibernate.mapping.Component$ValueGenerationPlan.execute(SessionImplementor, Object, Object) |1,052| 23 s 541 ms| | org.hibernate.id.CompositeNestedGeneratedValueGenerator.generate(SessionImplementor, Object) |1,052| 23 s 541 ms| | org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(Object, String, Object, EventSource, boolean) |1,052| 23 s 541 ms| | org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(Object, String, Object, EventSource, boolean) |1,052| 23 s 541 ms| | org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(PersistEvent, Map) |1,052| 23 s 541 ms| | org.hibernate.event.internal.DefaultPersistEventListener.onPersist(PersistEvent, Map) |1,052| 23 s 541 ms| | org.hibernate.event.internal.DefaultPersistEventListener.onPersist(PersistEvent) |1,018| 23 s 352 ms| | org.hibernate.internal.SessionImpl.firePersist(PersistEvent) |1,018| 23 s 352 ms| | org.hibernate.internal.SessionImpl.persist(String, Object) |1,018| 23 s 352 ms| | org.hibernate.internal.SessionImpl.persist(Object) |1,018| 23 s 352 ms| | org.hibernate.ejb.AbstractEntityManagerImpl.persist(Object) |1,018| 23 s 352 ms| | org.jboss.as.jpa.container.AbstractEntityManager.persist(Object) |1,018| 23 s 352 ms| | org.hibernate.internal.SessionImpl.firePersistOnFlush(Map, PersistEvent) |34| 188 ms 897 μs| | org.hibernate.internal.SessionImpl.persistOnFlush(String, Object, Map) |34| 188 ms 897 μs| | org.hibernate.engine.spi.CascadingAction$8.cascade(EventSource, Object, String, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeToOne(Object, Object, Type, CascadeStyle, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeAssociation(Object, Object, Type, CascadeStyle, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeProperty(Object, Object, Type, CascadeStyle, String, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeCollectionElements(Object, Object, CollectionType, CascadeStyle, Type, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeCollection(Object, Object, CascadeStyle, Object, CollectionType) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeAssociation(Object, Object, Type, CascadeStyle, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascadeProperty(Object, Object, Type, CascadeStyle, String, Object, boolean) |34| 188 ms 897 μs| | org.hibernate.engine.internal.Cascade.cascade(EntityPersister, Object, Object) |34| 188 ms 897 μs| | org.hibernate.event.internal.AbstractFlushingEventListener.cascadeOnFlush(EventSource, EntityPersister, Object, Object) |34| 188 ms 897 μs| | org.hibernate.event.internal.AbstractFlushingEventListener.prepareEntityFlushes(EventSource, PersistenceContext) |34| 188 ms 897 μs| | org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(FlushEvent) |34| 188 ms 897 μs| | org.hibernate.event.internal.DefaultFlushEventListener.onFlush(FlushEvent) |34| 188 ms 897 μs| | org.hibernate.internal.SessionImpl.flush() |34| 188 ms 897 μs| | org.hibernate.internal.SessionImpl.managedFlush() |34| 188 ms 897 μs| | | org.hibernate.engine.transaction.synchronization.internal.SynchronizationCallbackCoordinatorNonTrackingImpl.beforeCompletion() |34| 188 ms 897 μs| | org.hibernate.engine.transaction.synchronization.internal.RegisteredSynchronization.beforeCompletion() |34| 188 ms 897 μs| | com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple.beforeCompletion() |34| 188 ms 897 μs| | com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletion() |34| 188 ms 897 μs| | com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(boolean) |34| 188 ms 897 μs| | com.arjuna.ats.arjuna.AtomicAction.commit(boolean) |34| 188 ms 897 μs| | com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate() |34| 188 ms 897 μs| | com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit() |34| 188 ms 897 μs| | com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit() |34| 188 ms 897 μs| | org.jboss.as.ejb3.tx.CMTTxInterceptor.endTransaction(TransactionManager, Transaction) |30| 173 ms 252 μs| | org.jboss.as.ejb3.inflow.MessageEndpointInvocationHandler.afterDelivery() | 4 |15 ms 645 μs| | org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(Object, String, Object, EventSource, boolean) |27| | 149 ms 578 μs| | org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(Object, String, Object, EventSource, boolean) |27| | 149 ms 578 μs| | org.hibernate.event.internal.DefaultPersistEventListener.entityIsTransient(PersistEvent, Map) |27| | 149 ms 578 μs| | org.hibernate.event.internal.DefaultPersistEventListener.onPersist(PersistEvent, Map) |27| | 149 ms 578 μs| | org.hibernate.event.internal.DefaultPersistEventListener.onPersist(PersistEvent) |27| | 149 ms 578 μs| | org.hibernate.internal.SessionImpl.firePersist(PersistEvent) |27| | 149 ms 578 μs| | org.hibernate.internal.SessionImpl.persist(String, Object) |27| | 149 ms 578 μs| | org.hibernate.internal.SessionImpl.persist(Object) |27| | 149 ms 578 μs| | org.hibernate.ejb.AbstractEntityManagerImpl.persist(Object) |27| | 149 ms 578 μs| | org.jboss.as.jpa.container.AbstractEntityManager.persist(Object) |27| | 149 ms 578 μs|
|
|