Cool!  Thanks for the confirmation.

On Thu, Nov 6, 2008 at 9:00 AM, Callum Hibbert <[EMAIL PROTECTED]>wrote:

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

Reply via email to