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 -~----------~----~----~----~------~----~------~--~---
