File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes EJB Certification (SCBCD/OCPJBCD) and the fly likes Question on Schedule Execution of Business Logic using Automatic Timers Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Certification » EJB Certification (SCBCD/OCPJBCD)
Bookmark "Question on Schedule Execution of Business Logic using Automatic Timers" Watch "Question on Schedule Execution of Business Logic using Automatic Timers" New topic
Author

Question on Schedule Execution of Business Logic using Automatic Timers

Mohit G Gupta
Ranch Hand

Joined: May 18, 2010
Posts: 634

Source 12.1.3. Running the Example Program – Declarative Scheduling

OCP JavaEE 6 EJB Developer Study Notes by Ivan A Krizsan Version: April 8, 2012


I had modified the example on Eclipse as below:

@Schedule(second = "20, 45", minute = "*", hour = "6-23",
dayOfWeek = "Mon-Sun", dayOfMonth = "*", month = "*", year = "*",
info = "MyTimer")
private void scheduledMethod1(final Timer inTimer)


Below is the output :



As written in the explanation for the example,
scheduling collisions are resolved by GlassFish by creating a new instance of the stateless session bean and invoking the timeout callback method to be executed next on the new instance


Question 1-A:When it is decided to create a new instance ?
As seen in the output provided,the new instance is created when a new timeout callback method is to created. eg:

scheduledMethod1 is executed with a different instance after scheduledMethod2 is executed

Question 1-B:So,when will the next instance be created ?

I see that both the methods keep on executing with instance 2 and 3 in a random order.
Question 2:So,will these methods stop executing after the criteria in the cancelOverdue is met or there is any other way too ?

I have configured the hour to be hour = "6-23".
Question 3 :So, shouldn't the timer till run 23 hr ? ( I see it running past 23 too,Please see in the output provided)


OCPJP 6.0 93%
OCPJWCD 5.0 98%
Mohit G Gupta
Ranch Hand

Joined: May 18, 2010
Posts: 634

Please advise.
Frits Walraven
Creator of Enthuware JWS+ V6
Bartender

Joined: Apr 07, 2010
Posts: 1687
    
  25

Hi Mohit,

Question 1-A:When it is decided to create a new instance ?

It has to use an idle instance for every timeout, so if all instances are serving a client (timeout), it will create a new one to serve the timout.

Question 2:So,will these methods stop executing after the criteria in the cancelOverdue is met or there is any other way too ?

No, they will just keep on expiring. Timers are also persisted, so even when you stop and start the server they will just keep on going to expire.

So, shouldn't the timer till run 23 hr ? ( I see it running past 23 too,Please see

Yes they should, but I guess the timer expired before 23 hrs and the log statement is only printed 15 seconds later (see waitSeconds(15);)

Regards,
Frits
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Question on Schedule Execution of Business Logic using Automatic Timers