Page 1 of 1
					
				About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Thu Apr 14, 2011 5:31 am
				by ETS User
				Programmatic timer creation is also valid, I can create a @Singleton with @Startup, and in its @PostConstruct I can create the timer for whatever EJB I want.
Is it not so?
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Thu Apr 14, 2011 7:38 am
				by admin
				I am not sure if you can create a timer for another bean.
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Thu Apr 14, 2011 8:01 am
				by Guest
				You can't, but if the EJB for which the timer is intended has a method named createTimer() { ... }, then the @PostConstuct method can invoke that method. This concludes a complete programmatic creation of a Timer.
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Thu Apr 14, 2011 7:53 pm
				by admin
				A statement "(Assume that there is no other bean in the application.)" has been added to the problem statement.
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Tue May 17, 2011 3:30 pm
				by jszczepankiewicz
				In the explanation there is:
"So remember that whenever the timer creation is to be done conditionally, it needs to be done programmatically."
The question is about automatic timer creation so I would change it to:
"So remember that whenever the timer creation has to be done unconditionally, it neds to be done automatically."
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Thu May 19, 2011 11:37 am
				by deadlock_gr
				I don't have the question in front of me, but the opposite of programmatic creation is declarative creation. Not automatic.
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Mon Feb 20, 2012 2:11 am
				by Adamsus
				On singletone bean you can create timer with garanted invocation on start.
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Thu Oct 04, 2012 7:37 am
				by fjwalraven
				The answer to this question should be:
"This can be achieved using programmatic or automatic timer creation."
because the question doesn't state that the bean is not a Singleton. If it is a Singleton you can create a CalendarTimer on Startup like this (calling every second the timerSignal() method):
Code: Select all
@Singleton
@Startup
@LocalBean
public class SingleWithTimerCreation {
    @Resource TimerService timer;
    
    @PostConstruct
    private void initTimer(){
    	ScheduleExpression se = new ScheduleExpression().hour("*").minute("*").second("*/1");
    	timer.createCalendarTimer(se);
    }
    
    @Timeout
    public void timerSignal(){
    	System.out.println("Timer time-out");
    }
}
Regards,
Frits
 
			 
			
					
				Re: About Question enthuware.oce-ejbd.v6.2.429 :
				Posted: Fri Oct 05, 2012 5:12 pm
				by admin
				You are right. A statement has now been added to the question that makes it clear that it is not a singleton bean.
thank you for your feedback!