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

Reply via email to