Решение, которое я использовал, очень похоже на решение, данное bkail.Существует один метод ejbTimeout (), который должен запускаться каждые 30 секунд.Тайм-аут запланирован с Serializable объектом, содержащим счетчик:
createTimer(Date initialExpiration, long intervalDuration, Serializable info)
Каждый раз, когда вызывается ejbTimeout, счетчик увеличивается.Если он достигнет 3, то вызывается метод, который должен быть запущен через 2 минуты, а также счетчик обнуляется. Он работает следующим образом:
ejbTimeout after 30sec (counter == 0): call A(); counter++;
ejbTimeout after 30sec (counter == 1): call A(); counter++;
ejbTimeout after 30sec (counter == 2): call A(); counter++;
ejbTimeout after 30sec (counter == 3): call A(); call B(); counter = 0;