I'll give this a try. Many thanks,
Callum On Wed, Nov 5, 2008 at 6:05 PM, Craig Neuwirt <[EMAIL PROTECTED]> wrote: > 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 -~----------~----~----~----~------~----~------~--~---
