> Umm.. why cant you call Marshall.ReleaseComObject()? You would have
> gotten the object for that method through a CCW.. no? I am probably just
[quoted text clipped - 27 lines]
> >>
> >>Slava Gurevich
> Hello Girish,
>
[quoted text clipped - 35 lines]
> I really don´t know what to do? It is impossible to maintain this
> object count.
<snip/>
Few things to try if feasible:
1. Try setting the "AutoComplete" property on the COM+ component. So
that when the method returns, it will signal the COM+ services to mark
that object for "de-activation".
2. Is there any object pooling active?
3. If you can, try wrapping that object within a ASP.NET page which
basically accepts POST/GET requests and services them by creating an
instance of the RCW and responding. Does this show the same behavior?
4. Write a generic ASP.NET page which instanciates any given object and
calls Marshal.ReleaseCOMObject() on that object once a request is
serviced. (Might be tough to achieve if you have to send back the
reference to the RCW).
Let me know if any of it helps from above..

Signature
Girish Bharadwaj
Slava Gurevich - 24 Oct 2003 16:21 GMT
>> Hello Girish,
>>
[quoted text clipped - 22 lines]
>> On every call i get one object and one activation, and the object
>> count never stops growing.
>Few things to try if feasible:
>1. Try setting the "AutoComplete" property on the COM+ component. So
[quoted text clipped - 9 lines]
>reference to the RCW).
>Let me know if any of it helps from above..
Just a few side comments: setting "autocomplete" in COM+ ( per method)
would require JIT to be enabled in order to work. Even then the stub
count ("objects" column in COM+ statistics) would continue to grow
until released. This object cannot be pooled in COM+ since it's
written in VB ( STA +TLS )
I think this would work better if the COM+ proxy was exported and
installed on the client side, where it would be wrapped by the RCW.
This way the Marshal.ReleaseCOMObject could be used; I assume right
now it doesn't work because it has to call all the way through to the
server and it's a static method ( correct me if I am wrong).
Slava Gurevich
Manuel Lopez - 27 Oct 2003 12:32 GMT
Slava Gurevich <vyach@hotmail.com> wrote in message
> Just a few side comments: setting "autocomplete" in COM+ ( per method)
> would require JIT to be enabled in order to work. Even then the stub
[quoted text clipped - 9 lines]
>
> Slava Gurevich
Hello Slava,
You are correct, if we install the COM+ proxys in the client side, and
then wrapp with TLBIMP, Marshall.ReleaseCOMObject works since there is
no remoting involved (it´s all in the client, and the comunication is
via DCOM).
But this is exactly what we don´t want to do, Remoting is much more
easier to configure than DCOM.
I think that in our case we are missing some configuration or setting.
It is a very simple approach:
SERVER
- VB6 DLL (one hello world method) in COM+
- TLBIMP over this DLL, place it in IIS with a server web.config for
remoting (SAO singlecall)
CLIENT
- Copy this dll in client machine, reference it from ASP.net page
- configure client web.config for remoting and load it on
application_start
As you can see it is very easy, and we think it is a good way to reuse
all our legacy com+ with net (this is what Interoperability is all
about).
But this simple example makes the object count grow, and it never
stops.
There must be something that we are missing.
Many thanks,
We really appreciate your help.
Manuel
Wray Smallwood - 29 Oct 2003 18:54 GMT
I would suggest buying the book Programming .NET Components by Juval Lowy.
You will find a lot of insight into your problem. The basic issue will come
down to the marriage of the .NET world with the COM+ world and how objects
are created and destroyed. Even the first chapter has a lot of information
to digest.
Wray Smallwood
> Slava Gurevich <vyach@hotmail.com> wrote in message
>
[quoted text clipped - 47 lines]
>
> Manuel
Manuel Lopez - 27 Oct 2003 12:15 GMT
Hello Girish,
Thanks again, below my comments.
> Few things to try if feasible:
> 1. Try setting the "AutoComplete" property on the COM+ component. So
> that when the method returns, it will signal the COM+ services to mark
> that object for "de-activation".
I am not using my own serviced components, I just use a RCW over COM+
and place it in IIS.
Is there any option in COM+ console to set Autocomplete?
> 2. Is there any object pooling active?
We don´t have any object pooling, on the COM+ component.
> 3. If you can, try wrapping that object within a ASP.NET page which
> basically accepts POST/GET requests and services them by creating an
> instance of the RCW and responding. Does this show the same behavior?
I think this is what we are doing right know, our ASP.net page creates
an instance of the RCW and calls the method. (singlecall remoting to
IIS)
> 4. Write a generic ASP.NET page which instanciates any given object and
> calls Marshal.ReleaseCOMObject() on that object once a request is
> serviced. (Might be tough to achieve if you have to send back the
> reference to the RCW).
> Let me know if any of it helps from above..
Thanks,
Manuel