Chaps, A call to "Kernel.ReleaseComponent" did the trick with Transient clients and having the system under load. I don't see any bugs with regards to releasing connections.
I haven't tested having a Singleton lifestyle without a call to "Kernel.ReleaseComponent" but I assume that would work fine. Thanks for all your help. Regards, Callum On Wed, Nov 5, 2008 at 6:20 PM, Craig Neuwirt <[EMAIL PROTECTED]> wrote: > Sure. Let me know how it turns out. If it doesn't release connections, > its possibly a bug somewhere. > > > On Wed, Nov 5, 2008 at 12:14 PM, Callum Hibbert <[EMAIL PROTECTED]>wrote: > >> 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 -~----------~----~----~----~------~----~------~--~---
