Sql SDL Tridion在发布多个项目时超时

Sql SDL Tridion在发布多个项目时超时,sql,tridion,tridion-2011,Sql,Tridion,Tridion 2011,使用SDL Tridion 2011 SP1时,当我们对多个项目执行任务时,有时会收到GUI错误(例如,一次从一个文件夹发布1000个组件)。从同一个列表中发布大约100个项目非常有效 我们在CME/GUI中看到的错误如下: The transaction associated with the current connection has completed but has not been disposed. The transaction must be disposed before t

使用SDL Tridion 2011 SP1时,当我们对多个项目执行任务时,有时会收到GUI错误(例如,一次从一个文件夹发布1000个组件)。从同一个列表中发布大约100个项目非常有效

我们在CME/GUI中看到的错误如下:

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.
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
Tridion错误日志中的Windows事件查看器中还有一个错误,如下所示:

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

这里使用了哪些超时值,我们如何增加这些超时值?

这是事务超时。如果您是通过GUI发布,可以尝试:

  • 打开“%TRIDION\u HOME%\Web\WebUI\WebRoot\Web.config”
  • 转到system.serviceModel->bindings->netTcpBinding->binding(“TcmNetTcpBinding”)
  • 将“readerQuotas”值更改为如下内容:
readerQuotas maxArrayLength=“10485760”maxBytesPerRead=“5120”maxDepth=“32”maxNameTableCharCount=“81920”maxStringContentLength=“10485760”/


根据您的评论,此超时显然在数据库中。关于存储过程的消息是这样说的。一旦发生数据库超时,那么中止事务和关闭套接字可能是不可避免的

在Tridion CM服务器上,您可以在Tridion管理管理单元中调整超时设置。在“超时设置”节点中,有两个可能是相关的


即使如此,这些默认值还是相当长的,如果您遇到了它们,那么我建议您寻找根本原因。我首先检查是否正确维护了Optimizer统计信息。

打开位于“C:\Program Files(x86)\Tridion\Bin”文件夹中的TcmServiceHost.exe.config。纳瓦格特 配置->系统.服务模型->行为->服务行为->行为-> 节点。添加以下节点

<serviceTimeouts transactionTimeout="00:10:00" />

还要进行以下更改:

  • 打开位于“%TRIDION\u HOME%\web\WebUI\WebRoot”的web.config
  • 导航到system.serviceModel->bindings->netTcpBinding->binding(“TcmNetTcpBinding”)
  • 将“readerQuotas”节点替换为:

  • 如果不起作用,请尝试以下配置:

    <readerQuotas maxArrayLength="10485760" maxStringContentLength="10485760"/>
    

    在%windir%\Microsoft.NET\Framework64\v4.0.30319\Config\machine.Config中 和%windir%\Microsoft.NET\Framework\v4.0.30319\Config\machine.Config

    • 将allowExeDefinition从“MachineOnly”更改为“MachineToApplication”
    • 在之前,添加以下部分

    在Tridion\config\Tridion.ContentManager.config中 -提供transactionTimeout的值(以秒为单位) 在Tridion\bin\TcmServiceHost.exe.config中 -更改CoreService\u netTcpBinding绑定

    <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">
    
    <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">
    
    
    
    • 在之前添加以下内容
    在Tridion\web\WebUI\WebRoot\web.config中 -更改CoreService\u netTcpBinding绑定

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

    这将您的超时时间设置为30分钟。

    这似乎让我更进一步,核心服务现在似乎超时了。有没有办法增加链中这一部分的事务超时?@chrisummers是的,您可以在这里增加它,但您可能还需要在服务器端增加它。您可以发布一个新的异常吗?事件日志中似乎有3个错误:第一个错误是在读取数据库队列消息时发生的。超时已过期。操作完成前已过超时时间,或者服务器没有响应。组件:Tridion.ContentManager.Publishing错误代码:0用户:NT权限\System第二个\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。事务超时组件:Tridion.ContentManager.CoreService错误代码:0用户:NT授权\网络服务第三个套接字连接被中止。这可能是由于处理消息时出错、远程主机超过接收超时或基础网络资源问题造成的。本地套接字超时为“10675199.02:48:05.4775807”。读取操作失败,请参阅内部异常。套接字连接已中止。这可能是由于处理消息时出错、远程主机超过接收超时或基础网络资源问题造成的。本地套接字超时为“10675199.02:48:05.4775807”。现有连接被…强制关闭,是否适用于2013sp1?在web\WebUI\WebRoot\web.config中找不到CoreService\u netTcpBinding