Ugh, might be a Seam/EJB3 interaction problem or just a EJB3 problem.
Can you chase up with the EJB3 guys whether it should work on a EJB3 timeout method if Seam isn't in the picture (post on their forum, check their JIRA). If it's not a known problem for them, put an issue in the Seam JIRA.
have you tried using Quartz instead? EJB timer is not clusterable.
Using Quartz helps.
Yes, as my original question said - it works fine *except* when using the EJB Timer Service.
Actually I've found a number of issues with the EJB timer service, and have as a result just started using quartz by default.. not for any functional enhancements, but simply because it appears to work properly whereas the ejb one... doesn't..!
A list of a few problems I have experienced with the EJB timer service:
1. Ignores @TransactionTimeout annotation
2. Incorrectly sets next run time pf persisted timers after Application server restart (takes restart time + interval rather than working out interval from initial schedule time). This was accepted by the ejb3 team as a bug. http://www.seamframework.org/Community/EJBTimersIgnoringStartDate
3. Sometimes just doesn't run scheduled events
All in all, quartz seems a better bet :)