Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » GlassFish » EJBTimerService stop working(EJBTimerService stop working)
EJBTimerService stop working [message #1793860] Fri, 17 August 2018 11:59
Marat Duglas is currently offline Marat DuglasFriend
Messages: 1
Registered: August 2018
Junior Member
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 14:53]

Report message to a moderator

Goto Forum:
  


Current Time: Wed Sep 26 11:10:02 GMT 2018

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

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

Back to the top