--
You received this message because you are subscribed to the Google Groups "Axon Framework Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to axonframewor...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
Andrea.
Andrea.
Hi everyone,
--
You received this message because you are subscribed to the Google Groups "Axon Framework Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to axonframewor...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably process 'persist' call
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:282)
at com.sun.proxy.$Proxy127.persist(Unknown Source)
at org.axonframework.saga.repository.jpa.JpaSagaRepository.storeAssociationValue(JpaSagaRepository.java:150)
at org.axonframework.saga.repository.AbstractSagaRepository.add(AbstractSagaRepository.java:48)
at org.axonframework.saga.AbstractSagaManager.startNewSaga(AbstractSagaManager.java:154)
at org.axonframework.saga.AbstractSagaManager.handle(AbstractSagaManager.java:95)
at org.axonframework.eventhandling.async.EventProcessor.doHandle(EventProcessor.java:276)
at org.axonframework.eventhandling.async.EventProcessor.processNextEntry(EventProcessor.java:225)
at org.axonframework.eventhandling.async.EventProcessor.run(EventProcessor.java:198)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Seems like it is looking for an artive transaction before it can persist.
I am not able to work out where transaction manager needs to be hooked.
I am using Annotation based approach.
Regards :
Harinder Singh
@Bean
public SpringTransactionManager springTransactionManager() {
return new SpringTransactionManager(new JpaTransactionManager());
}
Hibernate: select domaineven0_.event_identifier as col_0_0_, domaineven0_.aggregate_identifier as col_1_0_, domaineven0_.sequence_number as col_2_0_, domaineven0_.time_stamp as col_3_0_, domaineven0_.payload_type as col_4_0_, domaineven0_.payload_revision as col_5_0_, domaineven0_.payload as col_6_0_, domaineven0_.meta_data as col_7_0_ from domain_event_entry domaineven0_ where domaineven0_.aggregate_identifier=? and domaineven0_.type=? and domaineven0_.sequence_number>=? order by domaineven0_.sequence_number ASC limit ?
2017-09-18 13:25:08.134 WARN 12700 --- [ taskExecutor-1] o.a.e.async.DefaultErrorHandler : Got a [java.lang.IllegalArgumentException: Resource must not be null] while handling an event of type [] in [the Unit of Work]. Will retry in 2000 millis
2017-09-18 13:25:08.134 WARN 12700 --- [ taskExecutor-1] o.a.eventhandling.async.EventProcessor : The provided executor does not seem to support delayed execution. Scheduling for immediate processing and expecting processing to wait if scheduled to soon.
2017-09-18 13:25:08.134 WARN 12700 --- [ taskExecutor-1] o.a.eventhandling.async.EventProcessor : Event processing started before delay expired. Forcing thread to sleep for 2000 millis.
I assume it is referring to the Data Source as Resource.?
Regards :
Harinder Singh
@Bean(destroyMethod = "close")
public DataSource dataSource(DataSourceProperties dataSourceProperties) {
HikariDataSource hikariDataSource = (HikariDataSource) DataSourceBuilder
.create(dataSourceProperties.getClassLoader())
.type(HikariDataSource.class)
.driverClassName(dataSourceProperties.getDriverClassName())
.url(dataSourceProperties.getUrl())
.username(dataSourceProperties.getUsername())
.password(dataSourceProperties.getPassword())
.build();
return hikariDataSource;
}
@Bean(name = "entityManager")
public EntityManager entityManager(
DataSourceProperties dataSourceProperties) {
return entityManagerFactory(dataSourceProperties).createEntityManager();
}
@Bean(name = "entityManagerFactory")
public EntityManagerFactory entityManagerFactory(
DataSourceProperties dataSourceProperties) {
LocalContainerEntityManagerFactoryBean emf =
new LocalContainerEntityManagerFactoryBean();
emf.setDataSource(dataSource(dataSourceProperties));
JpaVendorAdapter jpaVendorAdapter = new HibernateJpaVendorAdapter();
emf.setJpaVendorAdapter(jpaVendorAdapter);
emf.setPackagesToScan("com.abc");
emf.setPersistenceUnitName("saga-persistence");
emf.afterPropertiesSet();
return emf.getObject();
}
@Bean(name = "transactionManager")
public PlatformTransactionManager transactionManager(
DataSourceProperties dataSourceProperties) {
JpaTransactionManager tm = new JpaTransactionManager();
tm.setEntityManagerFactory(entityManagerFactory(dataSourceProperties));
return tm;
}
@Bean
public ClusterSelector clusterSelector(
@Qualifier("asyncExecutor") Executor executor,
SpringTransactionManager springTransactionManager) {
Cluster cluster = new AsynchronousCluster(queueName + QUEUE_UNIQUIFIER,
executor, springTransactionManager, new SequentialPerAggregatePolicy());
return new DefaultClusterSelector(cluster);
}
@Bean
public SpringTransactionManager springTransactionManager(
PlatformTransactionManager transactionManager) {
return new SpringTransactionManager(transactionManager);
}
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.axonframework.saga.SagaRepository]: Factory method 'sagaRepository' threw exception; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: SagaEntry is not mapped [SELECT new org.axonframework.saga.repository.jpa.SerializedSaga(se.serializedSaga, se.sagaType, se.revision) FROM SagaEntry se WHERE se.sagaId = :sagaId]
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 32 common frames omitted
Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: SagaEntry is not mapped [SELECT new org.axonframework.saga.repository.jpa.SerializedSaga(se.serializedSaga, se.sagaType, se.revision) FROM SagaEntry se WHERE se.sagaId = :sagaId]
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1679)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1602)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1608)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:294)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:347)
at com.sun.proxy.$Proxy120.createQuery(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke(SharedEntityManagerCreator.java:298)
at com.sun.proxy.$Proxy120.createQuery(Unknown Source)
at org.axonframework.saga.repository.jpa.JpaSagaRepository.<init>(JpaSagaRepository.java:95)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
... 33 common frames omitted
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: SagaEntry is not mapped [SELECT new org.axonframework.saga.repository.jpa.SerializedSaga(se.serializedSaga, se.sagaType, se.revision) FROM SagaEntry se WHERE se.sagaId = :sagaId]
at org.hibernate.hql.internal.ast.QuerySyntaxException.generateQueryException(QuerySyntaxException.java:79)
at org.hibernate.QueryException.wrapWithQueryString(QueryException.java:103)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:218)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:115)
at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:76)
at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150)
at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:302)
at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:240)
at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1894)
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:291)
... 57 common frames omitted
Caused by: org.hibernate.hql.internal.ast.QuerySyntaxException: SagaEntry is not mapped
at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:171)
at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:91)
at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:76)
at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:321)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3687)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3576)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:716)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:572)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:309)
at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:257)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:262)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:190)
... 65 common frames omitted
@EntityScan("org.axonframework.saga.repository.jpa")