I followed the instructions from the two pages which pop up on top of the search list
EJB3 Clustered Database Timers - WildFly 9 - Project Documentation Editor
Creating clustered EJB 3 Timers
to set up clustered timers on a Wildfly 10 system, which has two nodes connected to the same database.
All the automatic (@Schedule'd) timers work just fine, i.e. they are fired only once, even though they are configured on both nodes.
Programmatic timers also work fine, in that they fire when they are supposed to fire. However, I thought that if a timer is added by node A to fire at a given time in the future and node A is down at that point in time, node B will be used to fire that timer instead. This is not the case. The programmatic timer is kept in the database until node A comes up again and it fires then, which makes sense for a persistent timer. Is there any way to get what I was expecting, i.e. nodes taking over timers from each other?