I looked at the new JBossMX stuff; Juha's rewrite of the Timer has fixed part of the 
problem. He does a much better job than Sun's Timer of determining what the next call 
time should be, and so in the example I gave he will attempt to execute the second 
MBean invocation at 12:00:30 rather than 12:00:35.

However, there is still a problem that originates in the 
javax.management.NotificationBroadcasterSupport class (which Juha has also rewritten). 
In the sendNotification method, he iterates through the set of NotificationListeners 
and does a synchronous notification to each Listener in the list. It appears that this 
single-threaded approach will prevent the Timer from effecting a notification to any 
MBean if the last-notified MBean has not yet finished executing its scheduled method.

In the example I gave before, assume there is a second MBean, and it also has a 
InitialStartDate of 12:00:00 and a SchedulePeriod of 30 seconds. If the first MBean 
takes 5 seconds to complete its scheduled invocation, then the second MBean will 
execute at 12:00:05, and 12:00:35, and so on.

My patch addresses this problem without altering NotificationBroadcastSupport. The 
SchedulerMBean receives the synchronous notification, creates a new Thread to actually 
invoke the MBean, and returns the original Thread of control back to the Timer so that 
it can immediately fire the next notification.

Anyway, let me know if you'd like the patch. It might be faster for you to just code 
the fix yourself.

Corby
_________________________________________________________
View thread online: http://main.jboss.org/thread.jsp?forum=66&thread=12516

_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to