[Building Sakai] is anyone using Samigo auto submit?

Hedrick Charles hedrick at rutgers.edu
Fri Feb 15 05:10:27 PST 2013


There's an option in Samigo to auto submit saved assessments at the due date. Is anyone using it? I tried turning it on, but the Quartz job to do the submit has been running for more than 12 hours so far. That might be OK if that's only the first time, but I see no reason to think it will do better next time. But it looks to me like it will process the same very large set of submissions each time:

The test checks for 
    current time >= retract date
    status not in 4,5
    autosubmit = 1

It shouldn't do anything unless forgrade != 1, and submitting sets it to 1, so it doesn't look like it will actually process anything twice, but it looks to me like each time it runs it will continue look at a huge number of assessments. In a system of our size I wonder whether this is practical.

Here's a backtrace of what it's doing now. It looks to me like to be practical this job may need to be recoded in SQL, not hibernate.
Main display


"QuartzScheduler_Worker-1" Id=27 RUNNABLE

java.lang.Class.getInterfaces(Native Method)
org.hibernate.intercept.FieldInterceptionHelper.isInstrumented(FieldInterceptionHelper.java:27)
org.hibernate.intercept.FieldInterceptionHelper.isInstrumented(FieldInterceptionHelper.java:38)
org.hibernate.engine.EntityEntry.requiresDirtyCheck(EntityEntry.java:221)
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:118)
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:196)
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:76)
org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:35)
org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:970)
org.hibernate.impl.SessionImpl.list(SessionImpl.java:1115)
org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
org.sakaiproject.tool.assessment.facade.ItemFacadeQueries$7.doInHibernate(ItemFacadeQueries.java:590)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
org.sakaiproject.tool.assessment.facade.ItemFacadeQueries.getItemTextId(ItemFacadeQueries.java:593)
sun.reflect.GeneratedMethodAccessor10376.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
$Proxy98.getItemTextId(Unknown Source)
org.sakaiproject.tool.assessment.services.ItemService.getItemTextId(ItemService.java:226)
org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.saveItemGradingData(AssessmentGradingFacadeQueries.java:3155)
org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.completeItemGradingData(AssessmentGradingFacadeQueries.java:3128)
org.sakaiproject.tool.assessment.facade.AssessmentGradingFacadeQueries.autoSubmitAssessments(AssessmentGradingFacadeQueries.java:2845)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
$Proxy102.autoSubmitAssessments(Unknown Source)
org.sakaiproject.tool.assessment.services.GradingService.autoSubmitAssessments(GradingService.java:2003)
org.sakaiproject.tool.assessment.services.AutoSubmitAssessmentsJob.execute(AutoSubmitAssessmentsJob.java:84)
org.sakaiproject.component.app.scheduler.jobs.SpringJobBeanWrapper.execute(SpringJobBeanWrapper.java:70)
org.quartz.core.JobRunShell.run(JobRunShell.java:202)
org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:534)
Main display                                   Kill thread
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20130215/6245ae5d/attachment.html 


More information about the sakai-dev mailing list