Re: A Very Troubled Application...

Mike Andrews <[email protected]> Tue, 9 Jun 2009 12:08:18 -0500
Newsgroups gmane.comp.windows.devel.dotnet.advanced
Message-ID <[email protected]>
Hi Peter,

Thanks for the reply.

Right now I'm creating a separate AppDomain and instantiating my Wrapper
object (which wraps all of the COM method calls because any method call can
cause a COM exception) inside that AppDomain.  Another problem with this
process is that it only allows one instance at a time (by reading the
process list and seeing if it's already there and if it is it throws up
another dialog).

I'm not sure what you mean by creating a worker-process.  Would I create an
application wrapper that then spawns the primary application?  If the
primary application fails would the worker-process fail or would I just
attempt to restart it?

Thanks,
Mike

On Tue, Jun 9, 2009 at 12:00 PM, Peter vd Weerd <[email protected]> wrote:

> Mike,
>
> In general: if you have access violations caused by COM-components, its not
> a good idea to recover from that.
> If you can isolate the complete application to a kind of a worker-process,
> you write a controller-program that starts this worker-process, and if it
> fails, just start a new one.
>
> Windows is very good in recovering from crashed processes: all resources
> are freed. So, when the controller process fires up a new worker-process its
> a brand new one with clean memory, a clean .NET virtual machine, etc.
>
> /Peter
>
>
> ----- Original Message ----- From: "Mike Andrews" <
> [email protected]>
> To: <[email protected]>
> Sent: Tuesday, June 09, 2009 6:06 PM
> Subject: [ADVANCED-DOTNET] A Very Troubled Application...
>
>
>   I have a very troubled application (not mine but a 3rd party) that likes
>> to
>> fail with various Unhandled exceptions (memory access and others) when
>> certain files are loaded (I have no idea of the reason).  Sometimes
>> loading
>> a file causes a COM exception to occur (no one knows why and it's very
>> unlikely that the manufacturer will ever fix it).  This causes the entire
>> application to crash (and/or provide some other unpredictable behavior).
>> This does not occur most of the time but only occasionally.  However I
>> must
>> account for these eventualities as this process will be running on
>> multiple
>> servers and I need it the most stable I can get it.
>>
>> What I have been doing is looking for the process in the process list and
>> then killing it.  That works most of the time but when one of those
>> dialogs
>> is thrown up asking you to click OK it really messes things up.  I've
>> started looking for the dialog, but the time when the dialog appears
>> varies
>> so any predictability is out.
>>
>> What I need to know is if it's possible to attach a hook (or some other
>> such
>> mechanism) to the window to intercept any unhandled win32 exceptions
>> similar
>> to the capability available in the .NET framework.  I'm at my wit's end
>> here
>> on this one.  I need to create something stable enough so I can recover on
>> the server and continue.
>>
>> Any help or information would be most appreciated.
>>
>> Thanks,
>> Mike
>>
>> ===================================
>> View archives and manage your subscription(s) at
>> http://peach.ease.lsoft.com/archives
>>
>>
> ===================================
> View archives and manage your subscription(s) at
> http://peach.ease.lsoft.com/archives
>

===================================
View archives and manage your subscription(s) at http://peach.ease.lsoft.com/archives