Currently we have a job that imports n records from an import file to the database. The class is structured like this:
@Startup
@Singleton
public class ImportJob implements Job {
@Inject
private ImportJobBean importJobBean;
@Timeout
public void trigger(Timer timer) {
importJobBean.execute();
}
}
@Stateless
public class ImportJobBean {
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
public void execute() {
//call other Stateless beans here
}
}
ImportJob is the entry point that calls ImportJobBean. There is no problem when I import 10K records but when I tried 100K, I encountered the error below.
12:07:21,986 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (http-localhost/127.0.0.1:8080-4) javax.resource.ResourceException: IJ000460: Error checking for a transaction
12:07:21,987 ERROR [org.jboss.as.ejb3] (http-localhost/127.0.0.1:8080-4) javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.GenericJDBCException: Could not open connection
Any advise on what's the best approach to execute this feature?
My tech stack: -javaee7 -postgresql -hibernate jboss
Thanks, czetsuya