Ask a questionAsk a question
 

AnswerConnection Pool Settings

  • Thursday, January 10, 2008 12:30 AMAtem Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    Hi,

     

    how can i change the connection pool settings for net.tcp channels?

     

    I would like to change IdleTimeout, because created but unused proxys are automatically aborted after 2 mins.

    By the way, i am caching channelfactories and not using reliable messaging.

     

    Thanks,

     

    atem

Answers

  • Thursday, January 10, 2008 1:23 AMOran Dennison Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    I'm not sure if this is the recommended approach, but here is some code from when I was playing with ConnectionPoolSettings.GroupName a few weeks ago (using different GroupNames can be used to force more TCP connections to be created):

     

    public class PoolGroupTcpBinding : NetTcpBinding

    {

    private string _groupName;

    public PoolGroupTcpBinding(string groupName) : base(SecurityMode.None, false)

    {

    _groupName = groupName;

    }

    public override BindingElementCollection CreateBindingElements()

    {

    BindingElementCollection result = base.CreateBindingElements();

    result.Find<TcpTransportBindingElement>().ConnectionPoolSettings.GroupName = _groupName;

    return result;

    }

    }

     

    You should be able to use the same technique to modify the IdleTimeout, something like:

     

    result.Find<TcpTransportBindingElement>().ConnectionPoolSettings.IdleTimeout = timespan;

All Replies

  • Thursday, January 10, 2008 1:23 AMOran Dennison Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     Answer

    I'm not sure if this is the recommended approach, but here is some code from when I was playing with ConnectionPoolSettings.GroupName a few weeks ago (using different GroupNames can be used to force more TCP connections to be created):

     

    public class PoolGroupTcpBinding : NetTcpBinding

    {

    private string _groupName;

    public PoolGroupTcpBinding(string groupName) : base(SecurityMode.None, false)

    {

    _groupName = groupName;

    }

    public override BindingElementCollection CreateBindingElements()

    {

    BindingElementCollection result = base.CreateBindingElements();

    result.Find<TcpTransportBindingElement>().ConnectionPoolSettings.GroupName = _groupName;

    return result;

    }

    }

     

    You should be able to use the same technique to modify the IdleTimeout, something like:

     

    result.Find<TcpTransportBindingElement>().ConnectionPoolSettings.IdleTimeout = timespan;

  • Thursday, January 10, 2008 12:33 PMAtem Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

     

    thank you. It is working.