Yes, doing Kernel.ReleaseComponent should work On Wed, Nov 5, 2008 at 12:02 PM, Ayende Rahien <[EMAIL PROTECTED]> wrote:
> Craig,I think we should be able to dispose of the client proxies no? > > > On Wed, Nov 5, 2008 at 7:59 PM, Callum Hibbert <[EMAIL PROTECTED]>wrote: > >> Oren - I already trieid that and I cannot cast to IDisposable. I get an >> InvalidCastException. >> >> Craig - I think I can work with that in my situation but if I had the >> scenario where I have more than 10 clients I would experience the same >> problem. If the clients are transient then I am always going to have one >> open connection per client. I am not very comfortable with upping the number >> of allowed connections, as per above, it would be hiding the underlying >> issue. >> >> Thanks, >> >> Callum >> >> On Wed, Nov 5, 2008 at 5:54 PM, Craig Neuwirt <[EMAIL PROTECTED]> wrote: >> >>> I usually make my clients singleton. They can be called from many >>> threads. >>> >>> >>> On Wed, Nov 5, 2008 at 11:38 AM, Callum Hibbert < >>> [EMAIL PROTECTED]> wrote: >>> >>>> Craig - I think it was you who did some (most? all?) of the work on the >>>> WCF integration, are you saying the client shouldn't be transient (in most >>>> cases)? >>>> >>>> Oren - I only have a reference to "IMyWcfService" which does not >>>> implement IDisposable. This is the same interface as the server-side >>>> service >>>> and it is my understanding that this should not implement IDisposable. So >>>> how can I close the service? I thought Castle would clean this up for me. >>>> Please advise if otherwise. I can't dispose the COM component myself, I >>>> have >>>> to trust the 3rd party application does this as it is that which >>>> instantiates my plugin (no source code for that). >>>> >>>> Germán - I am working from the trunk but I have not encountered this >>>> issue before and I use this Facility alot. >>>> >>>> Thanks, >>>> >>>> Callum >>>> >>>> >>>> On Wed, Nov 5, 2008 at 5:28 PM, Germán Schuager <[EMAIL PROTECTED]>wrote: >>>> >>>>> Are you running from the trunk? >>>>> Apparently a bug was introduced that makes the container hold >>>>> references to transient components, thus preventing correct disposal. >>>>> >>>>> http://support.castleproject.org/projects/IOC/issues/view/IOC-ISSUE-132 >>>>> >>>>> On Wed, Nov 5, 2008 at 2:10 PM, Callum Hibbert < >>>>> [EMAIL PROTECTED]> wrote: >>>>> >>>>>> Hello, >>>>>> >>>>>> I am using a third party product for which I have written a plugin. My >>>>>> plugin is executed using COM, so I have something like this (very simple >>>>>> example): >>>>>> >>>>>> [Guid("my-guid")] >>>>>> [ClassInterface(ClassInterfaceType.None)] >>>>>> [ProgId("myProgId")] >>>>>> [ComVisible(true)] >>>>>> public class MyPlugin : ICustomActivity >>>>>> { >>>>>> private readonly IMyWcfService service; >>>>>> >>>>>> public MyPlugin() >>>>>> { >>>>>> service = Container.Resolve<IMyWcfService>(); >>>>>> } >>>>>> >>>>>> public string Execute(string xml) // This is the >>>>>> ICustomActivity implementation >>>>>> { >>>>>> string response = service.DoSomething(); >>>>>> return message; >>>>>> } >>>>>> } >>>>>> >>>>>> "Container" is a very simple wrapper around WindsorContainer. I am >>>>>> using the WCF Integration facility so the "service" object is a WCF >>>>>> service >>>>>> proxy/client. I have marked the object as transient, for example: >>>>>> >>>>>> <castle> >>>>>> <components> >>>>>> <component >>>>>> id="IMyWcfService" >>>>>> type="Company.Product.IMyWcfService, Company.Product" >>>>>> >>>>>> wcfEndpointConfiguration="MyWcfServiceClientEndpointConfig" >>>>>> lifestyle="transient" /> >>>>>> </components> >>>>>> </castle> >>>>>> >>>>>> My problem is that the "service" client is not being closed. If I run >>>>>> my application under load, I hit the maximum 10 open connections and then >>>>>> start to get errors for subsequent connections. I am unwilling to >>>>>> configure >>>>>> an increase in the number of allowed connections because this would be >>>>>> hiding the underlying problem. >>>>>> >>>>>> I have used Castle's WCF Integration on a lot of projects before and I >>>>>> have not experienced this problem, though this is the first time COM has >>>>>> ben >>>>>> thrown into the mix. >>>>>> >>>>>> Obviously, I have no hook to IDisposable. IMyWcfService does not >>>>>> implement IDisposable (and imy understanding is that you should never do >>>>>> that). Also, I cannot cast the proxy to IDisposable as a work around. >>>>>> >>>>>> Can anyone shed any light on what the problem might be? Is this >>>>>> something to do with the fact that the plugin is called via COM and is >>>>>> not >>>>>> disposed of correctly? How can I ensure the client is closed and disposed >>>>>> properly (and in a timely manner)? >>>>>> >>>>>> Any help or pointers greatly appreciated. >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Callum >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>> >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---
