On Friday, June 26, 1998, 05:22 AM, Ron Quagliani wrote: Is there a way to monitor whether a subsystem is active or not? and, if it is not active to make the subsystem start back up? We have the need for a user-defined subsystem to run 24 hours a day 7 days a week. Thank you In the controlling subsystem you could define an autostart job entry, a job queue, and a class. Given that: One method is to have the autostart job in the controlling subsystem run a program which first STRSBS and then does an ALCOBJ ((UDSbs *SBSD *EXCL)) WAIT(*CLS); the job has DFTWAIT(*NOMAX) from the class. When the allocate occurs, then deallocate and loop back to STRSBS request. Another method has the program doing a STRSBS UDSbs followed by a SBMJOB CMD(CALL AJEpgm) JOBQ(ctlsbsjq) and then the previously noted allocate; the job queue must allow only one job to be active to that subsystem -- since the other job is queued up to repeat the action, it will start only after the previous job ends, after the subsystem ends. A third method would have the above program wait on a message queue after the STRSBS, upon receipt of a message would re-start it. This requires the UDSbs to have an AJ which starts commitment control with a notify object of a message queue. When the commitment control is terminated, the message is sent to the queue. A fourth method is to create an Alert situation for the termination of a subsystem, use the alert data from a data queue which the ctl sbs job's AJ is on an infinite wait; review the data for the subsystem name, if not ignore, otherwise STRSBS. Loop back to the wait. There are of course caveats for each method; eg. in the third, if the AJ is ended vs the SBS, then it is an invalid notification. Other concerns are the AJ in the controlling subsystem being ended or someone holding a jobq or a job, etc. Regards, Chuck Comments provided "as is" with no warranties of any kind whatsoever.

Reply With Quote