locked
The operation with action "CompositeOperation" took longer than the specified timeout "00:01:00" wcf-sql RRS feed

  • Question

  • Hi,

    i have an esb application to share master data .Iam using WCF-SQL adaptor.  If records count is more ,then i Get the following error.

    The operation with action "CompositeOperation" took longer than the specified timeout "00:01:00" 

    How to increase the  time .

    Please help me.

    Thursday, April 7, 2016 5:34 AM

Answers

  • Hi Rachit,

    I am using WCF-SQL for schema creation.

    And i am using dynamic send port.

    How to do it. 

    You have two options:

    1) Set the value to individual property like below:

    yourmessage(WCF.SendTimeout) = "00:10:00";
    
    yourmessage(WCF.CloseTimeout) = "00:10:00";
    
    yourmessage(WCF.OpenTimeout) = "00:10:00";

    2) Set the binding configuration like below:

    yourmessage(WCF.BindingConfiguration) = @"<binding name=""WCF-SQL"" closeTimeout=""00:10:00"" sendTimeout=""00:10:00"" openTimeout=""00:10:00""></binding>";



    Rachit Sikroria (Microsoft Azure MVP)


    Thursday, April 7, 2016 7:12 AM
    Moderator
  • Since this is a Send Operation, just increase the SendTimeout value to a larger one, say from 1 minute to 10 minutes - "00:10:00". This should allow your SQL operations more time to execute before the WCF channel on BizTalk times out.

    Also, you may want to check if there is any performance degradation at the destination SQL Server side, which may be causing these operations to take long.

    Refer this for more details on the various config settings for WCF-SQL adapter-

    https://msdn.microsoft.com/en-us/library/dd787981.aspx


    Thanks Arindam


    Thursday, April 7, 2016 6:30 AM
    Moderator

All replies

  • Please set below setting for on WCF-Sql Bindings on your send port. This is should take care of your end to end transaction with SQL before the WCF channel timeout. 

    1) OpenTimeout : 01:00:00

    OpenTimeout (TimeSpan) – the interval of time provided for an open operation to complete including security handshakes (WS-Trust, WS-Secure Conversation etc.). The default is 00:01:00.

    2) CloseTimeOut: 01:00:00

    CloseTimeout (TimeSpan) – the interval of time provided for a close operation to complete. The default is 00:01:00.

    3) SendTimeout: 01:00:00

    SendTimeout (TimeSpan) – the interval of time provided for an entire operation to complete. This includes both sending of message and receiving reply! The default is 00:01:00.


    4) ReceiveTimeout: 01:00:00

    ReceiveTimeout (TimeSpan) – the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped. The default is 00:10:00.
    This setting is only used on the server-side and has no effect on client-side.
    When using Reliable Sessions remember to set the InactivityTimeout property on the reliableSession element to the same value as the ReceiveTimeout property, as both inactivity timers has to be satisfied.

    Configuring Timeout Values on a Binding


    Rachit Sikroria (Microsoft Azure MVP)

    Thursday, April 7, 2016 5:48 AM
    Moderator
  • Since this is a Send Operation, just increase the SendTimeout value to a larger one, say from 1 minute to 10 minutes - "00:10:00". This should allow your SQL operations more time to execute before the WCF channel on BizTalk times out.

    Also, you may want to check if there is any performance degradation at the destination SQL Server side, which may be causing these operations to take long.

    Refer this for more details on the various config settings for WCF-SQL adapter-

    https://msdn.microsoft.com/en-us/library/dd787981.aspx


    Thanks Arindam


    Thursday, April 7, 2016 6:30 AM
    Moderator
  • Hi Rachit,

    I am using WCF-SQL for schema creation.

    And i am using dynamic send port.

    How to do it. 

    Thursday, April 7, 2016 7:06 AM
  • Hi Rachit,

    I am using WCF-SQL for schema creation.

    And i am using dynamic send port.

    How to do it. 

    You have two options:

    1) Set the value to individual property like below:

    yourmessage(WCF.SendTimeout) = "00:10:00";
    
    yourmessage(WCF.CloseTimeout) = "00:10:00";
    
    yourmessage(WCF.OpenTimeout) = "00:10:00";

    2) Set the binding configuration like below:

    yourmessage(WCF.BindingConfiguration) = @"<binding name=""WCF-SQL"" closeTimeout=""00:10:00"" sendTimeout=""00:10:00"" openTimeout=""00:10:00""></binding>";



    Rachit Sikroria (Microsoft Azure MVP)


    Thursday, April 7, 2016 7:12 AM
    Moderator
  • Just for clarity, the only binding property that will have a bearing in your case is the SendTimeOut property - increasing just this is enough. Rest do not apply in your case.

    Thanks Arindam

    Thursday, April 7, 2016 7:21 AM
    Moderator