また、これまでの経験に基づいたコメントを追加したいと思います。次のシナリオ:
- セッションおよび/またはエンジンおよび/またはパッケージは静的変数に保存されます
- セッションおよび/またはエンジンおよび/またはパッケージは、静的なメソッドにパラメーターとして送信されます
公開中のメモリリークなど、前述の問題とは別にいくつかの問題が発生する可能性があります。
パブリッシャーは、応答しないモード(停止、再起動、無効化はできません)になり、サーバーを再起動する必要があるまで、メモリの消費を開始します。
大規模な公開を行うと、これらの問題は悪化する可能性があります
したがって、セッション、エンジン、パッケージを使用するものはすべて非静的に変換することをお勧めします
例として、すべてのテンプレートで使用されるユーティリティの初期化に使用される次のコードから移動します
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using Tridion;
using Tridion.ContentManager;
using Tridion.ContentManager.CommunicationManagement;
using Tridion.ContentManager.ContentManagement;
using Tridion.ContentManager.ContentManagement.Fields;
using Tridion.ContentManager.Templating;
using Tridion.ContentManager.Publishing;
namespace sample.sample1
{
public class Utilities
{
private static Engine _engine;
private static Package _package;
public void InitializeUtilities(Engine e, Package p)
{
_engine = e;
_package = p;
}
}
}
の中へ
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using Tridion;
using Tridion.ContentManager;
using Tridion.ContentManager.CommunicationManagement;
using Tridion.ContentManager.ContentManagement;
using Tridion.ContentManager.ContentManagement.Fields;
using Tridion.ContentManager.Templating;
using Tridion.ContentManager.Publishing;
namespace sample.sample1
{
public class Utilities
{
private Engine _engine;
private Package _package;
public void InitializeUtilities(Engine e, Package p)
{
_engine = e;
_package = p;
}
}
}
多くの問題を保存できます