raptor3676 said:figuerres said:*snip*Well I'm not sure that screen-scrape is need here all the users need to check is that the app(s) are live and kicking and they can do that just by looking at the UI if it is dead, kill it (Task Man) a restart it no further acction is required. The rest of the information is (verbosely) logged to files.
I tried alternative solutions here, I even managed to scrap half of those apps. The part that actually handles the transport and persistance part for 3rd party systems I rewrote it entirely in C#, it can now safely run as a service, I made it more resilient a various levels, it has been in production for quite some time now as smooth as silk. In fact I earned a gigantic bonus because of that
However the rest of that suite (POC is a better term), handles the business logic, not to mention that it is supported/maintained by our headquarters in Europe. And this time I had to agree with my boss and rule out a replacement because it's too risky. Unexpected behavior for the rest of the solution, and non-company-standard implementation, is on top of my list.
Anyway, I even tried the scrapping-the-damned-POS approach, and took it as far as I could go. But that still left us struggling with the "really 1 instance has to run 7x24 no matter who is on the box" problem
I don't know if that can be accomplished by the RDP client app you mentioned.
I'm confused. Do you only want 1 single copy to possibly run, or only 1 per user that might be trying to run it?
Either way, it can probaly solved most easily with a stub checking whether or not you are running in Session 0 before launching the app. If you only want 1 possible copy, insist that it runs in Session 0 (i.e. via /admin or /console). Otherwise a combination of the GP setting and a refusal to run in Session 0 would do it. It's a dirty hack but it'll sort of work.
The alternative is one big global mutex, or a global mutex which partially incorporates the user name if you only want one copy to launch per user.
Or you could, you know, just tell users not to launch it from within a /console session 'cos it breaks stuff. Us ops guys are kinda used to rubbish software apps that don't behave 100% as they should.