Таймеры EJB внезапно прекращают стрелять в Glassfish 4.1.2 (сборка 1) - PullRequest
0 голосов
/ 18 декабря 2018

То же приложение, работающее на Glassfish, установленное в Windows и Linux.На винде проблем нет.В Linux раз в несколько дней все таймеры прекращают работу.

Добавление свойства:

reschedule-failed-timer=true

не решило проблему.

Я думал, что это может иметьчто-то связанное с откатами перехода или системными исключениями, поэтому я создал простой тестовый таймер:

@Startup
@Singleton
@LocalBean
public class AliveTimer {

    final static Logger log = Logger.getLogger( AliveTimer.class );
    @Resource private TimerService ts;

    @PostConstruct
    private void atStartup() {
        TimerConfig config = new TimerConfig();
        config.setPersistent( false );

        ScheduleExpression schedule = new ScheduleExpression();
        schedule.second( "0" );
        schedule.minute( "30" );
        schedule.hour( "*/8" );

        ts.createCalendarTimer( schedule, config );
    }

    @Timeout
    public void execute( Timer timer ) {
        log.info( "Timers alive..." );
    }

}

, и даже этот останавливает срабатывание через пару дней, и помогает только повторное развертывание приложения или перезапуск контейнера.

Когда возникает ситуация, вызов следующего URL

http://localhost:8080/ejb-timer-service-app/timer

возвращает нормальный вывод

Welcome to Timer Application

There are 0 active persistent timers on this container
There are 258 active non-persistent timers on this container 

Ничего существенного также нельзя найти в журналах.

Есть ли у кого-нибудь идеи?в чем может быть причина?

...