OSEC

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 (TacoVanSMARTTECH.COM)
Date: Mon Aug 06 2001 - 11:22:50 CDT

  • Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]

    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_strainHOTMAIL.COM]
    Sent: Saturday, August 04, 2001 5:52 PM
    To: DCOMDISCUSS.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 <TacoVanSMARTTECH.COM>
    >Reply-To: Distributed COM-Based Code <DCOMDISCUSS.MICROSOFT.COM>
    >To: DCOMDISCUSS.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-requestDISCUSS.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-requestDISCUSS.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-requestDISCUSS.MICROSOFT.COM