Sangeeta Misra wrote: > On 05/28/09 05:29, Alan Maguire wrote: >> Sangeeta Misra wrote: >>> >>> >>> In ILB project, the persistent configuration is kept in the SCF >>> framework and a user would use svcadm to enable/disable the ILB >>> service. My question is, in the event that the ILB service, >>> experiences a fatal error, is there a programmatic way to put ILB >>> service in maintainance mode ( to prevent the service from going >>> into a cycle or restart followed by fatal error)? >> If the ILB service daemon can detect such fatal errors >> once it has daemonized, you can use the libscf function >> >> smf_maintain_instance(ILB_FMRI, SMF_IMMEDIATE) >> >> (where ILB_FMRI points at the ILB service instance) >> >> ...to kill the associated running processes and put the >> instance into maintenance. If there are fatal conditions >> detectable before daemonizing, simply exit with >> errorcode 95 (SMF_EXIT_ERR_FATAL). >> >> Hope this helps, >> >> Alan > Thanks. Also after the service automatically goes into maintainance > mode, we would like to have the user save the ILB config ( and provide > that to us, so we can recreate the problem) and then wipe out the ILB > service configuration in scf to start fresh. > Assuming this is possible with SCF, how can the user do this ? Do they > need to save a image of a shipped ILB config ( which is really enpty > config) before they configure ILB , so at a later time they can revert > back to that config? > hmm, one approach that might be worth investigating - assuming all the config is in properties contained in the ILB service instance - would be the use of SMF snapshots (read-only views of the properties associated with an instance). If I recall, the snapshot interfaces (to create named snapshots and attach to them) are private libscf functions, so I think you'd need an ARC contract to use them, but they might provide a useful method for archiving and retrieving previous configuration views.
Alan