|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: Taco Van Ieperen (TacoVan
SMARTTECH.COM)Date: Mon Aug 06 2001 - 11:22:50 CDT
When I get a "not enough storage" error, it is normally when I am passing
the interface to the server. The call never arrives at the server at all.
It simply fails locally. I even tried tracing into the ProxyStubDLL at one
point to see if there was a bug in the generated code. More common in this
situation is a "remote procedure call failed" error.
Given the variety of problems I am encountering I think I will simply take
Drew's suggestion and go to a polling mechanism. The ONLY problems I have
that weren't of my own making all revolve around the callback interfaces
(DCOM works really well otherwise). My guess is that Windows 9x was never
meant to take this type of abuse, and that my application is simply
stretching it to the breaking point.
Taco.
-----Original Message-----
From: Eric Strain [mailto:eric_strain
HOTMAIL.COM]
Sent: Saturday, August 04, 2001 5:52 PM
To: DCOM
DISCUSS.MICROSOFT.COM
Subject: Re: [DCOM] Problems with Callbacks on Win9X
after just quickly reading over the problem a few things come to mind. the
occasional error "Not enough storage" seems to indicate an insufficient
available heap space for the returned interface pointer on the machine. Does
your code have a handler for any failed hr after an attempted QI for the
remote interface? that will point you in the right direction for tracking
the problem. you'll also be able to see if it is the same thing failing each
time, or if it's multiple bugs and they're taking turns :) In the mean time
I'll give this some more thought and let you know what I come up with.
>From: Taco Van Ieperen <TacoVan
SMARTTECH.COM>
>Reply-To: Distributed COM-Based Code <DCOM
DISCUSS.MICROSOFT.COM>
>To: DCOM
DISCUSS.MICROSOFT.COM
>Subject: Problems with Callbacks on Win9X
>Date: Fri, 3 Aug 2001 13:53:28 -0600
>
>Hopefully somebody has some clues about this because it is driving me
>crazy.
>I've been struggling with these problems on and off for over 2 years. For
>the most part we have been ignoring them hoping for a Microsoft service
>pack, but now that MS has abandoned us all to pursue the latest flavor of
>the week there seems to be no more hope of that.
>
>I am very close to pitching DCOM entirely and rewriting the problem code in
>raw IP. If DCOM is not up to this task I would appreciate knowing about it
>so I can stop wasting time on this.
>
>
>
>Our software involves a client application which registers a callback sink
>with a server running on another machine. It does this by passing a
>pointer
>to the interface to the remote server. It always works correctly on NT and
>2000, and works about 98% of the time on other platforms. It always works
>fine if the server is running on the same machine.
>
>
>When it works incorrectly I see a number of incorrect behaviors:
>
>1) The sink register correctly and gets updates as expected. If I simply
>leave the client idle without doing anything, it disconnects after 6
>minutes. The client thinks the server has disconnected. The server thinks
>the client has disconnected. None of them were doing anything. The DCOM
>garbage collecter apparently just went bezerk. It only does this
>sometimes.
>
>2) Sometimes the method call that registers the sink fails locally. That
>is
>to say, I get "the remote procedure call failed" types of errors and the
>server never gets called. These errors can be pretty weird including
>things
>like "Not enough storage". If I make calls to different methods of the
>same
>interface before and after the failed call, these are invariably
>successful.
>It is only this one method that fails. My guess it is that DCOM is having
>troubles marshalling the pointer to my interface. Again, normally this
>works so this seems to be some sort of timing condition.
>
>3) Sometimes step 2 above works, but when the server does a QueryInterface
>for the actual sink interface it get a "server threw an exception" error
>from the QueryInterface call to the client. On the client side the
>QueryInterface arrives as I would expect (it asks me for a couple of
>marshalling interfaces and then the interface that was queried for). The
>client does not throw an exception so somewhere between my client returning
>the interface and the server getting the result DCOM seems to blow up.
>
>4) Our application has a taskbar similar to the windows taskbar which we
>register with the system using AppBarMessage(ABM_SETPOS, ...); This works
>fine except if I am running Windows 98 gold. On some Win98 gold machines
>this call causes the entire system to hang for up to 1 minute ONLY if I
>have
>registered the callback with the server in the last half minute or so. By
>hang I mean that no windows respond to clicks. If I comment out the code
>to
>register this callback then everything works fine. Note that the server
>register call has already completed when this happens.
>
>
>I have tried a number of approaches including moving my client callback
>handler into a seperate executible. Nothing seems to make these errors go
>away. The closest I have come to success is to have a retry loop on the
>code in section 2 which simply repeats the call 10 times. Often the call
>simply works after the 3 or 4th retry but lately it has been failing more
>consistently.
>
>The callback is a custom interface which is not derived from IDispatch.
>Proxy/Stubs are of course registered everywhere.
>
>Any help would be appreciated!
>
>
>Taco van Ieperen
>Chief Scientist
>SMART Technologies Inc.
>
>----------------------------------------------------------------
>Users Guide http://discuss.microsoft.com/archives/mailfaq.asp
>contains important info. Save time, search the archives at
>http://discuss.microsoft.com/archives/index.html .
>To unsubscribe, mailto:DCOM-signoff-request
DISCUSS.MICROSOFT.COM
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
----------------------------------------------------------------
Users Guide http://discuss.microsoft.com/archives/mailfaq.asp
contains important info. Save time, search the archives at
http://discuss.microsoft.com/archives/index.html .
To unsubscribe, mailto:DCOM-signoff-request
DISCUSS.MICROSOFT.COM
----------------------------------------------------------------
Users Guide http://discuss.microsoft.com/archives/mailfaq.asp
contains important info. Save time, search the archives at
http://discuss.microsoft.com/archives/index.html .
To unsubscribe, mailto:DCOM-signoff-request
DISCUSS.MICROSOFT.COM
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]