Hi ,
We are running a loadtesting for CAS with 4 JBOSS servers. When user load is
increased to 400 we are getting an exception as below.
The quartz job is running from all locations.
What is the best option to run quartz job in this scenario.
Only enabling Quartz job in one of the servers only?
2009-10-02 05:21:23,404 INFO [STDOUT] 2009-10-02 05:21:23,404 ERROR
[org.hibernate.util.JDBCExceptionReporter] - <Lock wait timeout exceeded;
try restarting transaction>
2009-10-02 05:21:23,414 INFO [STDOUT] 2009-10-02 05:21:23,409 ERROR
[org.hibernate.event.def.AbstractFlushingEventListener] - <Could not
synchronize database state with session>
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch
update
at
org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at
org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:146)
at
org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at
org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at
org.hibernate.transaction.JTATransaction.commit(JTATransaction.java:135)
at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)
at
org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:456)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy80.deleteTicket(Unknown Source)
at
org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner.clean(DefaultTicketRegistryCleaner.java:72)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:276)
at
org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:260)
at
org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
at org.quartz.core.JobRunShell.run(JobRunShell.java:203)
at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: java.sql.BatchUpdateException: Lock wait timeout exceeded; try
restarting transaction
at
com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1269)
at
com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:955)
at
org.jboss.resource.adapter.jdbc.WrappedStatement.executeBatch(WrappedStatement.java:519)
at
org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at
org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 26 more
2009-10-02 05:21:23,417 INFO [STDOUT] 2009-10-02 05:21:23,416 ERROR
[org.quartz.core.JobRunShell] - <Job DEFAULT.jobDetailTicketRegistryCleaner
threw an unhandled Exception: >
org.springframework.scheduling.quartz.JobMethodInvocationFailedException:
Invocation of method 'clean' on target class [class
org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] failed;
neste
d exception is org.springframework.transaction.TransactionSystemException:
Could not commit JPA transaction; nested exception is
javax.persistence.RollbackException: Error while commiting the transaction
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:203)
at
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:520)
Caused by: org.springframework.transaction.TransactionSystemException: Could
not commit JPA transaction; nested exception is
javax.persistence.RollbackException: Error while commiting the transaction
at
org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:465)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
at
org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
at
org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
at
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
--
You are currently subscribed to [email protected] as:
[email protected]
To unsubscribe, change settings or access archives, see
http://www.ja-sig.org/wiki/display/JSG/cas-user