Skip to main content



      Home
Home » Eclipse Projects » GlassFish » EJBTimerService stop working(EJBTimerService stop working)
EJBTimerService stop working [message #1793860] Fri, 17 August 2018 07:59
Eclipse UserFriend
Hallo!

I have a question about EJBTimerService.

EJBTimerService is central controller, which the use java.util.Timer.
//java.util.Timer jdkTimer = ejbContainerUtil.getTimer();
//jdkTimer.schedule(timerTask, timerExpiration);

My problem is java.util.Timer.mainLoop stop working and new task not scheduled.

After GlassFish source code analyzing I made conclusions.
Problem happen because we receive RejectedExecutionException from ejbContainerUtil.addWork(work) when EJBTimeout.
//EJBTimerTask timerTask = new EJBTimerTask(timerExpiration, timerId, this);
//timerService_.taskExpired(timerId_);

Inside ejbContainerUtil.addWork we have defaultThreadPoolExecutor.submit() = EjbThreadPoolExecutor extends ThreadPoolExecutor + AbortPolicy.

TaskExpiredWork work = new TaskExpiredWork(this, timerId);
ejbContainerUtil.addWork(work);

So timer java.util.Timer.mainLoop stop working,
because core poll is exceeded, queue is full, max core is exceeded, then we receive from ThreadPoolExecutor RejectedExecutionException.

I'm corret? Or I'm wrong?




















[Updated on: Sat, 18 August 2018 10:53] by Moderator

Next Topic:java.lang.NoClassDefFoundError
Goto Forum:
  


Current Time: Wed Apr 30 20:46:04 EDT 2025

Powered by FUDForum. Page generated in 0.07653 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top