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