Boa tarde amigos,
Espero que o dia vos encontre bem.
Eu trabalho com monitoria da aplicação da minha empresa, e uma das minhas tarefas é fazer o controlo dos ficheiros de log. Algumas semanas atrás deparei-me com um erro estranho. O stack trace apresentado é o seguinte:
[slf5s.start]ERROR[slf5s.PRIORITY]Job (DEFAULT.org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean#1a28362 threw an exception.[slf5s.MESSAGE]21 Jun 2010 16:18:49,406[slf5s.DATE]org.quartz.core.ErrorLogger[slf5s.CATEGORY][slf5s.NDC]QuartzScheduler_Worker-7[slf5s.THREAD]
org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method ‘processOneFCEResponseFile’ on target class [class $Proxy1] failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: JTA failure on begin; nested exception is javax.transaction.SystemException: Cannot create a new transaction, exceeding transaction quota]
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525)
Caused by: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method ‘processOneFCEResponseFile’ on target class [class $Proxy1] failed; nested exception is org.springframework.transaction.CannotCreateTransactionException: JTA failure on begin; nested exception is javax.transaction.SystemException: Cannot create a new transaction, exceeding transaction quota
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:269)
at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
… 1 more
Caused by: org.springframework.transaction.CannotCreateTransactionException: JTA failure on begin; nested exception is javax.transaction.SystemException: Cannot create a new transaction, exceeding transaction quota
at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:856)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:377)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:263)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.processOneFCEResponseFile(Unknown Source)
at sun.reflect.GeneratedMethodAccessor17.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:276)
at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:260)
… 3 more
Caused by: javax.transaction.SystemException: Cannot create a new transaction, exceeding transaction quota
at tyrex.tm.impl.TransactionDomainImpl.canCreateNew(Unknown Source)
at tyrex.tm.impl.TransactionDomainImpl.createTransaction(Unknown Source)
at tyrex.tm.impl.TransactionManagerImpl.begin(Unknown Source)
at org.springframework.transaction.jta.UserTransactionAdapter.begin(UserTransactionAdapter.java:69)
at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:886)
at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:843)
… 14 more
A nossa aplicação corre com um .bat simples e para geração de logs usamos o log4j. As transacções mencionadas são criadas usando o spring.
Fui ao Holy Google (amen!!) e procurei pela string “Cannot create … quota” e não me ajudou muito. Espero não ter falhado alguma coisa.
Nossa aplicação lida com muitos acessos a base de dados, portanto nosso receio é esse erro estar a afectar as operações na base.
Eu acompanho este erro desde Março desde ano, mas eu tinha de exaustar todas as opções (pra mostrar bonito ao boss…) antes de me render a minha inexperiência.
Se alguem encontrou este tipo de erro antes e conseguiu resolver agradeço se puder me ajudar. Qualquer dúvida estarei sempre disponível para esclarecer.
Um abraço,
Poluska