OSEC

Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com
 
From: Jonas Blunck TACMa (jobuTAC.SE)
Date: Wed Feb 06 2002 - 07:09:54 CST

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

    I still don't understand :-( If you are returning a copy, how come you need
    to keep the original recordset referenced? What kind of recordsets are you
    talking about? ADO?

    Cheers
      Jonas

    -----Original Message-----
    From: Pete Davis [mailto:pdavisQUETEL.COM]
    Sent: den 6 februari 2002 14:10
    To: DCOMDISCUSS.MICROSOFT.COM
    Subject: Re: Page Swapping

    The client's release of the recordset does not release it on the server
    (because a copy is made to return to the client). We need to maintain a
    reference count of at least 1 to return a valid recordset. Once the function
    has returned, we can't release it because the component goes into an
    inactive state after the return. There's no place ot release the server-side
    copy. That's why we have the garbage collection.

    Pete
    ----- Original Message -----
    From: "Jonas Blunck TACMa" <jobuTAC.SE>
    To: <DCOMDISCUSS.MICROSOFT.COM>
    Sent: Wednesday, February 06, 2002 8:04 AM
    Subject: Re: Page Swapping

    > I haven't followed the intire thread, so I may be a bit off in my
    > reply
    :-)
    >
    > You state that you return your recordsets as out-params, and that you
    cannot
    > release it in the server since the client is using it. This is what
    > reference counting is all about. The client should release the
    > recordset when he is done with it.
    >
    > How come you need to release it in your server?
    >
    > // B
    >
    > -----Original Message-----
    > From: Pete Davis [mailto:pdavisQUETEL.COM]
    > Sent: den 6 februari 2002 14:02
    > To: DCOMDISCUSS.MICROSOFT.COM
    > Subject: Re: Page Swapping
    >
    >
    > The reason we need the garbage collection is that we actually return
    > the recordsets as [out] parameters in our methods. It's kinda hard to
    > release
    it
    > after the function we return it in. Our components are written in
    > VC++.
    >
    > What we do, instead, is maintain a list of recordsets that have been
    > returned. When a method in the component is called, it goes through
    > and deletes anything that's more than 2 minutes old.
    >
    > Pete
    > ----- Original Message -----
    > From: "ArunKumar S" <akumarOMNESYSINDIA.COM>
    > To: <DCOMDISCUSS.MICROSOFT.COM>
    > Sent: Wednesday, February 06, 2002 12:42 AM
    > Subject: Re: Page Swapping
    >
    >
    > > Guess ur paging probs are solved - but i think i might need a bit of
    > > info regarding the recordset garbage collection u mentioned earlier
    > >
    > > And what is the IDl declaration u use and what is the platform u use
    > > for
    > ur
    > > COM object vc / VB ? - I was under the assunmption that once an
    > > interface is marhsalled across it can be freed at the COM component
    > > and thats it The copy of memory that is recieved at the client can
    > > be freed by the
    > client
    > > - what is the need for a seperate garbage collection like say 2
    > > minutes after it is sent across ?
    > >
    > > ----- Original Message -----
    > > From: Pete Davis <pdavisQUETEL.COM>
    > > To: <DCOMDISCUSS.MICROSOFT.COM>
    > > Sent: Tuesday, February 05, 2002 11:11 AM
    > > Subject: Re: Page Swapping
    > >
    > >
    > > > The recordsets are returned. Once returned, they have a life of
    > > > their
    > own
    > > on
    > > > the client. On the server side, we keep a reference count while
    > > > we're retiurning then. After 2 minutes, we discard of them
    > > > (release until reference count = 0) . Not the cleanest way to deal
    > > > with returned
    > objects,
    > > > but it works, and it saves us the problem of having to pass the
    > > > objects
    > in
    > > > and back out.
    > > >
    > > > Pete
    > > > ----- Original Message -----
    > > > From: "ArunKumar S" <akumarOMNESYSINDIA.COM>
    > > > To: <DCOMDISCUSS.MICROSOFT.COM>
    > > > Sent: Tuesday, February 05, 2002 12:08 AM
    > > > Subject: Re: Page Swapping
    > > >
    > > >
    > > > > How do u do the garbage collection on the recordsets u return ?
    > > > >
    > > > > ----- Original Message -----
    > > > > From: Pete Davis <pdavisQUETEL.COM>
    > > > > To: <DCOMDISCUSS.MICROSOFT.COM>
    > > > > Sent: Tuesday, February 05, 2002 7:31 AM
    > > > > Subject: Page Swapping
    > > > >
    > > > >
    > > > > We have a COM+ server with around 40 components. I would say
    > > > > there are roughly 6 or so that are used repeatedly.
    > > > >
    > > > > We find that, even on servers with plenty of memory (like 700mb
    > > > > more
    > > than
    > > > > the COM+ app uses), we get a lot of page faults. Sometimes so
    > > > > bad that
    > > it
    > > > > affects CPU performance.
    > > > >
    > > > > I'm really at a loss for what could be causing so many page
    > > > > faults.
    > The
    > > > > entire COM+ app is only about a meg and a half, so the code
    > > > > shouldn't
    > be
    > > > > paging. Sometimes we have the database on the same machine,
    > > > > other
    > times
    > > > not,
    > > > > either way, the page faults are high.
    > > > >
    > > > > I know this is vague, and I can't really explain the entire app
    > > > > and
    > > can't
    > > > > show the code, but can anyone give us some hints at what to look
    > > > > for?
    > > > >
    > > > > We did find some major memory leaks and the COM+ components were
    > > consuming
    > > > a
    > > > > great deal of memory. Basically, we were leaking interfaces that
    > > > > we
    > were
    > > > > returning from the components. We didn't want to pass the
    > > > > interfaces
    > in
    > > > > doing an in/out, because we didn't need the extra overhead, so
    > > > > we implemented garbage collection, which happens every 2
    > > > > minutes. This
    > took
    > > > > care of about 90% of the leaks (we're still searching for the
    > > > > other
    > 10%)
    > > > >
    > > > > This still hasn't fixed the problem.
    > > > >
    > > > > Could it have something to do with returning interfaces?
    > > > > Actually,
    > what
    > > we
    > > > > return are ADO recordsets, which we garbage-collect every 2
    > > > > minutes.
    > > > >
    > > > > Any help would be greaty appreciated.
    > > > >
    > > > > Pete
    > > > >
    > > > > ----------------------------------------------------------------
    > > > > 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
    > > > >
    > > >
    > > > ----------------------------------------------------------------
    > > > 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
    >
    > ----------------------------------------------------------------
    > 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

    ----------------------------------------------------------------
    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