geronimo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeremy Boynes" <>
Subject RE: [Deployment] IM #2 Summary for Directory Issue
Date Sat, 04 Oct 2003 07:50:19 GMT
> From: gianny DAMOUR [] 
> Sent: Friday, October 03, 2003 4:45 PM
> On Fri, 3 Oct 2003 18:38:13 -0400 (EDT), Aaron Mulder wrote:

> >2) There will be a "service controller" that manages the 
> JSR-77 state 
> >of various objects in the server.  I need to get more 
> information about 
> >this from Dain.  But the relevant part is that based on the 
> above, all 
> >the applications that were previously deployed have MBeans, 
> and those 
> >MBeans would brought back in the "stopped" state when the server is 
> >started. Then with the service controller in place, the service 
> >controller can go try to start the ones that were formerly running.  
> >Thus it is the service controller (or if not, then the 
> MBeans), not the 
> >individual app DDs, which remember what state the different 
> components 
> >are in.
> I disagree. It is possible to stop manually a 
> J2EEManagedObject. When the 
> server is shut-down and re-started, this same 
> J2EEManagedObject could be 
> accessed as runnable by the DependencyService and hence 
> re-started. In other 
> words, the state has not been exactly restored.
> An alternative could be to take a snapshot of the currently deployed 
> J2EEManagedObject prior to shut-down a server (we will need a 
> "Persistence 
> Service" that Dain will support). Then, when the server is 
> re-started, one 
> reads this snapshot, which explicitely defines 
> J2EEManagedObject as running, 
> stopped, failed et cetera to restore the previous state. More 
> accurately, if 
> the J2EEManagedObject was running, then one startRecursive 
> it. It is then up 
> to the DependencyService to assess if it can actually restore 
> exactly the 
> same state.

This second alternative is more what I had in mind.

MBean persistence is used to store the configuration of each MBean (the
values of persistent attributes). This is used to reload the MBeans on
restart. The JSR77 state is not a persistent attribute, so all MBeans
come back in the STOPPED state.

The service controller on the other hand does persist the JSR77 state of
each MBean. It listens to state change notifications and updates its
persistent form as the managed MBeans start/stop/fail. When the server
restarts, the service controller uses this information to define a
target state for each MBean and then schedules start requests to boot
the server to that running state.

Given child objects can be stopped, I doubt startRecursive is the way to
go - instead, the controller will need to start each one individually
(and in the correct order).


View raw message