[jboss-jira] [JBoss JIRA] (WFLY-9586) Persistent EJB timers should resume only once if missed multiple times

Stuart Douglas (JIRA) issues at jboss.org
Tue May 22 17:42:00 EDT 2018


     [ https://issues.jboss.org/browse/WFLY-9586?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Stuart Douglas reassigned WFLY-9586:
------------------------------------

    Assignee: Stuart Douglas


> Persistent EJB timers should resume only once if missed multiple times
> ----------------------------------------------------------------------
>
>                 Key: WFLY-9586
>                 URL: https://issues.jboss.org/browse/WFLY-9586
>             Project: WildFly
>          Issue Type: Enhancement
>          Components: EJB
>            Reporter: Wolf-Dieter Fink
>            Assignee: Stuart Douglas
>              Labels: ejb, timeout, timerservice
>
> Timers which are persistent need to resume if the timeout is missed, i.e. if the server was down.
> The EJB specification say by §13.2:
> "In the event of a container crash or container shutdown, the timeout callback method for a persistent timer that has not been cancelled will be invoked on a new JVM when the container is restarted or on another JVM instance across which the container is distributed. This rule applies to both programmatically or automatically created persistent timers."
> The understanding is not clear and can be
> - resume ALL missed timeouts
> - resume but fire the timer only once
> As Wildfly prevent from having the same timeout running concurrent a server start will have the effect that multiple timeouts are fired (assume you have a timer scheduled for every second and the server is down for minutes) but only the first (or a couple) will efectively executed all other will 'only' burden the server and log warn/error messages.
> The effect for the server start is a slower startup, long list of log messages and no real benefit!
> If the spec is really unclear here a configuration flag should be added to control that behaviour (like done for ejb invocation in-vm calls - byReference/byValue)
> The current behaviour should be the default but a boolean attribute should allow to fire the timer only once and set the next timeout according to the schedule (recurring or calendar) in the future.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)



More information about the jboss-jira mailing list