When using SDL Tridion 2011 SP1 we sometimes receive GUI errors when we perform task on multiple items (e.g. publishing 1000 components from one folder at once). Publish about 100 items from the same list works perfectly.
The error we see is in the CME/GUI is as follows:
The transaction associated with the current connection has completed
but has not been disposed. The transaction must be disposed before the
connection can be used to execute SQL statements.
There is an additional error in the Windows Event Viewer in the Tridion Error log as follows:
The socket connection was aborted. This could be caused by an error processing
your message or a receive timeout being exceeded by the remote host, or an
underlying network resource issue. Local socket timeout was
'10675199.02:48:05.4775807'.
The read operation failed, see inner exception.
The socket connection was aborted. This could be caused by an error processing
your message or a receive timeout being exceeded by the remote host, or an
underlying network resource issue. Local socket timeout was
'10675199.02:48:05.4775807'.
An existing connection was forcibly closed by the remote host
Which timeout values are being used here, and how can we increase these timeout values?
In %windir%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config and %windir%\Microsoft.NET\Framework\v4.0.30319\Config\machine.config
Before < /configuration > add the section below
In Tridion\config\Tridion.ContentManager.config - Provide a value for transactionTimeout in seconds < session transactionTimeout="3600" />
In Tridion\bin\TcmServiceHost.exe.config - change the CoreService_netTcpBinding binding
<binding name="CoreService_netTcpBinding"
transactionFlow="true"
transactionProtocol="WSAtomicTransaction11"
maxReceivedMessageSize="2147483647"
closeTimeout="00:30:00"
openTimeout="00:30:00"
receiveTimeout="00:30:00"
sendTimeout="00:30:00">
in Tridion\web\WebUI\WebRoot\Web.config - change the CoreService_netTcpBinding binding
<binding name="TcmNetTcpBinding"
maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647"
maxBufferPoolSize="2147483647"
closeTimeout="00:30:00"
openTimeout="00:30:00"
receiveTimeout="00:30:00"
sendTimeout="00:30:00"
transactionFlow="true"
transactionProtocol="WSAtomicTransaction11">
This sets your timeouts to 30 minutes.