|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: Albert Pi (API_at_CABLEVISION.COM)
Date: Wed Aug 21 2002 - 10:36:44 CDT
MEOW
Albert Pi
Corp IS System Delivery
516-803-3762
>>> peterpartch
PMCONSULT.COM 08/20/02 11:25AM >>>
The GIT is a table of strong table marshaled MEOW packets (by the way, MEOW
is not a acronym....its the tag at the front of the packet. The packet is a
buffer of data that identifies the location of the object).
The GIT was created because there was no way to strong table marshal
interface proxies....you could only strong table marshal direct references
to objects....at one time. This, if I'm not mistaken, has changed. If you
perform some testing, you should see that you can now perform strong table
marshaling of interface proxies.
Your comments about the behavior of AddRef and Release are correct, but
don't forget that the COM standard marshaling system never hooks proxies to
proxies. When a proxy is rehydrated, you are always hooked directly up to
the stub of the object.
Peter Partch
----- Original Message -----
From: "George Ter-Saakov" <gt-saakov
CARDONE.COM>
To: <DCOM
DISCUSS.MICROSOFT.COM>
Sent: Tuesday, August 20, 2002 8:17 AM
Subject: Re: [DCOM] marshalling interface pointers...
I think that restriction came from the way AddRef/Release work.
If you noticed that AddRef and Release does not return HRESULT. It's because
it can never fail.
When Proxy/Stub are created the AddRef/Release on proxy does not
AddRef/Release on object itself.
Proxy holds one pointer to the stub. And stub holds pointer to the object.
So AddRef/Release affects only proxy on client side. No calls to the server.
When you call CoUnitialize the COM runtime clean up and removes all stubs
(stub call Release on object).
That is why it's important that Appartment must be allive till Clients
connected to the server.
I am not sure why it happens with GIT and not happening with
CoMarshalInterThreadInterfaceInStream
but I am afraid this behavior can change with new Service Pack.
George.
-----Original Message-----
From: Peter Partch [mailto:peterpartch
PMCONSULT.COM]
Sent: Tuesday, August 20, 2002 10:54 AM
To: DCOM
DISCUSS.MICROSOFT.COM
Subject: Re: marhsalling interface pointers...
No, the registering apartment does not have to stay alive....the apartment
that the object lives in has to stay alive.
...and don't register the IStream* from COMITIIS....that is the wrong object
instance. It only holds the MEOW packet for another object reference and
become useless as soon as you call CoGetInterfaceAndReleaseStream.
Peter Partch
----- Original Message -----
From: "Ben Callister" <BCallister
TUTOR.COM>
To: <DCOM
DISCUSS.MICROSOFT.COM>
Sent: Tuesday, August 20, 2002 6:55 AM
Subject: Re: [DCOM] marhsalling interface pointers...
that *really* sucks about the GIT (registering apt having to stay
alive). that doesnt make sense to me since the GIT is a process-wide
store for interface pointers. does this still apply if the interface i
register is an IStream* from COMITIIS?
thanks tons,
Ben
-----Original Message-----
From: Steve Johnson [mailto:sjohnson
3TSYSTEMS.COM]
Sent: Tuesday, August 20, 2002 9:47 AM
To: DCOM
DISCUSS.MICROSOFT.COM
Subject: Re: marhsalling interface pointers...
[Steve Wrote]
>> 1 - The apartment that originally registered the interface in the GIT
>> must remain alive for the *entire* time the interface is registered
>> in the GIT. Attempts to unmarshal the interface after the original
>> apartment has been destroyed will fail.
>>
[Phil Wrote]
> This is not unique to the GIT. If you kill any apartment then you kill
> all objects in it irrespective of their reference counts.
> CoMarshalWhatEver suffers the same problem. Note: if the source
> apartment is STA then it must
> be processing messages or the unmarshal will block until it does.
The difference is this: When using COMITIIS, you can kill the apartment
that called COMITIIS, and still successfully unmarshal the interface in
a different apartment as long as the apartment the object actually lives
in remains. With the GIT, the apartment that
*registered* the interface must remain alive regardless whether that's
the apartment the real object lives in.
-- Steve Johnson 3t Systems---------------------------------------------------------------- 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
---------------------------------------------------------------- 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
---------------------------------------------------------------------------- ------------------------ This message is intended only for the use of the individual or entity to which it is addressed and may contain information that is privileged, confidential or exempt from disclosure under applicable law. If the reader of this message is not the intended recipient, or the employee or agent responsible for delivering the message to the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication is strictly prohibited. If you have received this communication in error, please notify the sender immediately.
---------------------------------------------------------------- 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
---------------------------------------------------------------- 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 ]