Galera, estou obtendo esse erro:
javax.persistence.PersistenceException: org.hibernate.HibernateException: Transaction was rolled back in a different thread!
tentando executar 140 mil inserts (um por loop) dentro de um loop while. Esse erro dispara por volta do insert numero 85 mil. Parece que tem haver com o timeout da transação. Esse método deve levar uns 8 minutos pra concluir toda operação e retornar. Não consegui resolver esse problema…
Segue o código
//CDI Managed Bean
@Transactional
public void configBase() {
ConfigBase.inserirRegistros();
System.out.println("OK");
}
classe ConfigBase
@TransactionAttribute(value = TransactionAttributeType.REQUIRES_NEW)
@TransactionTimeout(value = 20, unit = TimeUnit.MINUTES)
public static void inserirRegistros() throws Exception {
Scanner reader = new Scanner(arquivo);
while(reader.hasNextLine()) {
//inserindo registros na base
//por do loop No 85 mil dispara
//javax.persistence.PersistenceException: org.hibernate.HibernateException: Transaction was rolled back in a different thread!
}
}
Ambiente
WildFly 12
JTA Datasource
CDI 2.0
JPA 2.1
JSF 2.2
obrigado