This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Need Custom Action Advice
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 04, 2010
06:52 PM
Need Custom Action Advice
ProjectType: InstallScript MSI
With our installation we create two services (SA and SB). Toward the end of the installation we want to use CAs to start up the services, wait for them to come up completely, then launch another process (PA) that depends on SA being up and running. If the SA service does not start up for some reason we don't want to launch PA. Instead we want to show a warning message. The wrinkle comes when SA launches eight child processes (P1-P8). These have a tendancy to bounce up and down if everything isn't "just right" and it is really P1-P8 that we depend upon, not SA itself.
The best I've come up with so far is to run an InstallScript function to check the state of the Windows service and pause for a period of time while the service launches P1-P8. This method does not work if P1-P8 are bouncing as Windows thinks the service is up and running but the processes we depend on are not.
Does anyone have any ideas on how to approach this scenario? We are not above writing DLL helper functions as we've done this several times already. Any thoughts on this would be greatly appreciated.
With our installation we create two services (SA and SB). Toward the end of the installation we want to use CAs to start up the services, wait for them to come up completely, then launch another process (PA) that depends on SA being up and running. If the SA service does not start up for some reason we don't want to launch PA. Instead we want to show a warning message. The wrinkle comes when SA launches eight child processes (P1-P8). These have a tendancy to bounce up and down if everything isn't "just right" and it is really P1-P8 that we depend upon, not SA itself.
The best I've come up with so far is to run an InstallScript function to check the state of the Windows service and pause for a period of time while the service launches P1-P8. This method does not work if P1-P8 are bouncing as Windows thinks the service is up and running but the processes we depend on are not.
Does anyone have any ideas on how to approach this scenario? We are not above writing DLL helper functions as we've done this several times already. Any thoughts on this would be greatly appreciated.
(2) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 04, 2010
08:53 PM
If you want my honest opinion, it sounds like your trying to fix an application design problem on the back end with the install.
I've been there and done that and will testify that this rarely ends well. I'd clean up the services and the dependency on them so that the install doesn't need CA's; it just uses the Sevicecontrol table to fire it all up and always launch's the EXE which is then expected to handle not being able to communicate with the services in a graceful way.
I've been there and done that and will testify that this rarely ends well. I'd clean up the services and the dependency on them so that the install doesn't need CA's; it just uses the Sevicecontrol table to fire it all up and always launch's the EXE which is then expected to handle not being able to communicate with the services in a graceful way.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 05, 2010
12:08 PM
I guess we could just launch the EXE like we are now and not try to be preemptive. The EXE we launch is not really a full-blown EXE. It's actually a Wise Script installer that's running as a plain executable (i.e. a wrapper executable). The author needed a solution and he only knew Wise Script at the time so that's what we got stuck with. I'll have to investigate the possibility of either doing this in a regular executable or possible a DLL call that gets added to our installation helper DLL.