8

SDL Tridion 2011 SP1 を使用している場合、複数のアイテムに対してタスクを実行すると (たとえば、1 つのフォルダから 1000 個のコンポーネントを一度に発行するなど)、GUI エラーが発生することがあります。同じリストから約 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.

Windows イベント ビューアーの Tridion エラー ログに、次のような追加のエラーがあります。

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

ここで使用されているタイムアウト値と、これらのタイムアウト値を増やすにはどうすればよいですか?

4

4 に答える 4

12

%windir%\ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ machine.configおよび%windir%\ Microsoft.NET \ Framework \ v4.0.30319 \ Config\machine.configにあります

  • allowExeDefinitionを「MachineOnly」から「MachineToApplication」に変更します</li>
  • </ configuration>の前に、以下のセクションを追加してください

Tridion \ config\Tridion.ContentManager.config内-transactionTimeoutの値を秒単位で指定します<sessiontransactionTimeout= "3600" />

Tridion \ bin\TcmServiceHost.exe.configで-CoreService_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">
  • <serviceTimeouts transactionTimeout ="00:30:00"/>の前に以下を追加します

Tridion \ web \ WebUI \ WebRoot\Web.config内-CoreService_netTcpBindingバインディングを変更します

<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分に設定されます。

于 2013-01-17T18:54:22.553 に答える
3

これはトランザクション タイムアウトです。GUI を介して公開している場合は、次を試すことができます。

  • 「%TRIDION_HOME%\Web\WebUI\WebRoot\web.config」を開く
  • system.serviceModel -> bindings -> netTcpBinding -> binding ("TcmNetTcpBinding") に移動します。
  • 「readerQuotas」の値を次のように変更します。

readerQuotas maxArrayLength="10485760" maxBytesPerRead="5120" maxDepth="32" maxNameTableCharCount="81920" maxStringContentLength="10485760"/>

于 2012-03-02T08:11:18.380 に答える
2

「C:\Program Files (x86)\Tridion\Bin」フォルダーにある TcmServiceHost.exe.config を開きます。configuration->system.serviceModel->behaviors->serviceBehaviors->behavior-> Node に移動します。次のノードを追加します

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

また、次の変更を行います。

  1. 「%TRIDION_HOME%\Web\WebUI\WebRoot」にある web.config を開きます
  2. system.serviceModel -> bindings -> netTcpBinding -> binding ("TcmNetTcpBinding") に移動します。
  3. 「readerQuotas」ノードを次のように置き換えます。

    <readerQuotas maxArrayLength="10485760" maxBytesPerRead="5120" maxDepth="32" maxNameTableCharCount="81920" maxStringContentLength="10485760"/>

これが機能しない場合は、次の構成を試してください。

<readerQuotas maxArrayLength="10485760" maxStringContentLength="10485760"/>
于 2012-05-14T06:22:45.280 に答える
1

あなたのコメントに基づいて、このタイムアウトは明らかにデータベースにあります。ストアド プロシージャに関するメッセージには、次のように記載されています。データベースのタイムアウトが発生すると、トランザクションの中止とソケットのクローズはおそらく避けられません。

Tridion CM サーバーでは、Tridion 管理スナップインでタイムアウト設定を調整できます。「タイムアウト設定」ノードには、関連する可能性のあるものがいくつかあります。

それでも、これらのデフォルトは非常に長いため、それらにヒットしている場合は、根本的な原因を探すことをお勧めします. まず、オプティマイザの統計が正しく維持されていることを確認します。

于 2012-05-12T17:43:55.163 に答える