メモリ リークまたは BizTalk Server プロセスでメモリ不足例外をトラブルシューティングする方法

文書翻訳 文書翻訳
文書番号: 918643
すべて展開する | すべて折りたたむ

目次

概要

メモリ リークは、一般的な問題です。くださいする必要があります。マイクロソフトの BizTalk Server で、メモリ リーク、またはメモリ不足 (OOM) の例外の原因を特定を検索するには、いくつかの手順します。この資料では、メモリ使用量およびメモリ関連の問題の可能性を評価するときに考慮すべき重要な点について説明します。これらの考慮事項は次のとおりです。
  • 物理 RAM
  • サイズの大きなメッセージの処理
  • 使用して、 /3 GB スイッチ
  • カスタム コンポーネントの使用
  • Microsoft のバージョン。システムが実行されている Net
  • プロセッサの数

はじめに

この資料では、メモリ リークのトラブルシューティングを行う方法について説明またはMicrosoft biztalk BizTalk Server プロセスでメモリ不足の例外サーバー。

詳細

BizTalk Server プロセス、メモリ リークが発生している可能性があります。Microsoft Windows タスク マネージャーでのメモリ使用量が 50 以上を消費するとき物理メモリの割合です。メモリ リークは、メモリ不足の例外を可能性があります。いつメモリ使用量増加、プロセスがシステム メモリが不足実行するまで、またはプロセスが機能を停止するまで。

この問題が発生すると、警告メッセージに似ています次のメッセージが、イベント ログに記録されます。

イベント種類: 警告
イベントの分類:(1)
イベント ID: 5410
説明: エラーは、BizTalk サービスを終了する必要がありますが発生しました。最も一般的な原因のメモリ エラーや接続できないという、1 つの BizTalk データベースへの接続の損失から、予期しないです。サービスはシャット ダウンし、1 分で自動的に再起動します。問題のあるデータベースが利用不可能な場合は、このサイクルが繰り返されます。
エラー メッセージ: 例外の種類System.OutOfMemoryException がスローされました。
エラーのソース:
BizTalk ホスト名前: BizTalkServerApplication
Windows サービス名:BTSSvc {DCC899FE-C62F-41BE-851A-8720B2EB9C14}

イベントの種類: 警告
イベントの分類: (1)
イベント ID: 5410
説明: エラーは、BizTalk サービスを終了する必要がありますが発生しました。最も一般的な原因は次のとおりです: 1) は、予期しないメモリ不足エラー。または 2 だ) に接続できないことや、1 つの BizTalk データベースへの接続の損失。サービスはシャット ダウンし、1 分で自動的に再起動します。問題のあるデータベースが利用不可能な場合は、このサイクルが繰り返されます。
エラー メッセージ: 例外の型を 'System.OutOfMemoryException' がスローされました。
エラーのソース: mscorlib
BizTalk ホスト名: BizTalkServerApplication
Windows サービス名: BTSSvc$ BizTalkServerApplication

重要な考慮事項

物理的な RAM とメモリの使用率

約半分、物理 RAM を使用すると、プロセスの予想される動作があるため、メモリ使用量は、ガイドラインとして使用します。たとえば、BizTalk Server 4 ギガバイト (GB) の RAM を持ち、BizTalk Server プロセスが約 500 メガバイト (MB) の RAM を使用する場合は、いないありますリーク。BizTalk Server プロセスが約 1 GB の RAM を使用する場合、メモリ リークまたはメモリ不足の状況がある可能性があります。メモリ使用量は、長時間のストアド プロシージャまたはオーケストレーションで発生可能性があります。通常、メモリ リーク、またはメモリ不足の条件が発生しているかどうかを判断するのには、BizTalk ホストを使用するメモリ量を知っていることを確認してください。

サイズの大きいメッセージ

BizTalk Server サイズの大きいメッセージを処理する場合、システム メモリ リークがあるようです。ただし、メッセージは大量のメモリを使用している場合があります。サイズの大きいメッセージの詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx

.aspx の http://msdn.microsoft.com/en-us/library/aa560481 (BTS.10)

また、高いメモリ使用量と予想される場合があることを検討してください BizTalkサーバー サイズの大きいメッセージを処理しています。ハードウェアをアップグレードすることができます。BizTalk Server の環境でのパフォーマンス要件を満たします。

メモリ リークを再現するかかる

すぐにメモリ リークが発生することができますまたはそれらを累積する可能性があります。時間です。両方のシナリオが一般的です。

32 ビット コンピューター上で/3 GB スイッチの使用

通常、プロセスに 2 GB の仮想アドレス空間にアクセスできます。/3 GBスイッチより多くのアドレス指定可能なメモリを必要とするシステムのオプションです。このオプションは、メッセージを処理するためには、メモリの使用量を向上可能性があります。ただし、 /3 GBスイッチは 1 GB のカーネル モード操作のアドレス指定可能なメモリのことができます。さらに、このスイッチ プール メモリの不足のリスクを増加します。

詳細については、 gb/3 GBスイッチは、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn.microsoft.com/en-us/library/ms791558.aspx
32 ビット バージョンの Windowsで/3 GBスイッチを有効にすると、プロセスに 3 GB の仮想アドレス アクセスできます。場合、プロセスは大規模なアドレス空間に注意してください。プロセスを大規模なアドレスが実行可能ファイルは、イメージ ヘッダーで、IMAGE_FILE_LARGE_ADDRESS_AWARE フラグがある場合に注意してください。BizTalk プロセスは大規模なアドレスであるため、BizTalk から/3 GB スイッチを役立ちます。

32 ビットの BizTalk ホスト インスタンスは、64 ビット バージョンの Windows (AMD64) を実行している場合は、BizTalk が大規模なアドレスであるため BizTalk プロセスのメリット、4 GB のメモリからアドレス空間に注意してください。したがって、ハイ メモリ アプリケーションを 64 ビット サーバーへの移動に最適なソリューションをことがあります。

8 64 ビット BizTalk プロセスでは、64 ビット バージョンの Windows (AMD64) を持つ TB のアドレス指定可能なメモリ。

仮想バイトと、プロセスが使用するプライベート バイトも考慮する必要があります。BizTalk ホスト インスタンス (あるは。Virtual Bytes の値が 2 GB に達する前に NET Framework アプリケーションの場合)、不足メモリ エラーが表示されます。これは、プロセスでは、32 ビット バージョンの Windows ( /3 GBスイッチを使用せず) のアドレス指定可能な最大メモリ 2 GB である場合でもに発生します。これ発生理由の詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn.microsoft.com/en-us/library/ms972959.aspx
http://blogs.msdn.com/tess/archive/2005/11/25/496898.aspx
/3 GBスイッチも、BizTalk プロセス 800 MB から 1800 mb の最大プライベート バイトが増加します。詳細については。NET Framework アプリケーションのパフォーマンスを有効に、 /3 GBスイッチは、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/ms998583.aspx
次の表では、この情報し、実用的な制限には、仮想バイト、およびプライベート バイトが含まれています。
元に戻す全体を表示する
プロセスWindowsアドレス指定可能なメモリ (には、大規模なアドレスを認識するプロセス)仮想バイトの実際的な制限プライベート バイトの実際的な制限
32 ビット32 ビット2 GB1400 MB800 MB
32 ビット32 ビット 3 GB/3 GB2400 MB1800 MB
32 ビット64 ビット4 GB3400 MB2,800 MB
64 ビット64 ビット8 TB該当しません。該当しません。
アドレス指定可能なメモリは 32 ビットと 64 ビットの Windows の詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn.microsoft.com/en-us/library/aa366778.aspx
PAE と/3 GB サポートのさまざまなバージョンの BizTalk Server の例を次に示します。
元に戻す全体を表示する
製品PAE/3 GB
BizTalk Server 2004 年[はい]いいえ
BizTalk Server 2006 年[はい][はい]
BizTalk Server 2006 R2[はい][はい]
BizTalk Server 2009[はい][はい]
場合は、コンピューターの性能要件を満たすために、 /3 GBスイッチを有効にする必要があります。BizTalk Server を実行しているサーバーを BizTalk グループに追加することもできます。これはメモリを消費するホスト インスタンスを自由に調整することができます。

BizTalk コンポーネントインターネット インフォメーション サービス (IIS) プロセス内で実行可能性があります。また、 /3 GBスイッチを有効にすると、便利します。

/3 GBスイッチは、Windows SharePoint Services 2.0 またはそれ以降のバージョンまたは SharePoint Portal Server 2003 SP2 またはそれ以降のバージョンを実行しているコンピューターではサポートされていません。 詳細については、「サポート技術情報」資料を参照するには、次の資料番号をクリックしてください。
933560Windows SharePoint Services 2.0 またはそれ以降のバージョンまたは SharePoint Portal Server 2003 Service Pack 2 またはそれ以降のバージョンの Windows Server 2003 の/3 GB スイッチはサポートされていません

カスタム コンポーネントの使用

パイプラインまたはサービス コンポーネントなどのカスタム コンポーネントを使用する場合は、これらのコンポーネントは何かを知る必要があります。潜在的な影響これらのコンポーネントのメモリ使用量を把握することもする必要があります。A一般的なメモリの問題は、コンポーネントをドキュメントに変換するときに発生します。、変換操作は、メモリを消費する操作です。ドキュメントの場合BizTalk Server は、変換、メッセージ ストリームに渡します。NETBizTalk プロセス内のフレームワークXslTransformクラスです。

別の一般的な問題集中的な文字列操作がある場合に発生します。集中的な文字列操作は、大量のメモリを消費できます。方法の詳細についてパフォーマンスを向上させるため、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/ms998547

バージョンがします。NET フレームワーク

マイクロソフト。NET Framework 2.0 と、します。NET Framework 1.1 は異なるメモリの問題があります。したがって、それらの間のさまざまな結果を参照してください可能性があります。使用しているかどうかは、します。NET Framework で確認は最新。NET Framework Service Pack 1 がインストールされています。これらのサービス パックいくつかの既知のメモリの問題に対処します。詳細については、次の資料番号をクリックしてください。

945757 修正される問題。NET Framework 2.0 Service Pack 1
867460 修正されるバグの一覧にします。NET Framework 1.1 Service Pack 1

プロセッサの数

共通言語ランタイム (CLR) は、次のガベージをがコレクター (Gc)。
  • ワークステーション (Mscorwks.dll)
  • サーバー (Mscorsvr.dll)
マルチプロセッサ システムの場合は、BizTalk Server を実行しているコンピューターである場合、します。NET Framework 実行エンジンのサーバー バージョンを使用します。これは、既定の動作です。サーバーのガベージ コレクターは、最大のスループットに設計されています。また、サーバーのガベージ コレクターは、非常に高いパフォーマンスを提供するために拡張できます。このガベージ コレクターはメモリを割り当て、後でシステムで高いパフォーマンスを実現するためのメモリを解放します。いくつかの BizTalk Server を実行しているため、コンピューター。NET フレームワーク コンポーネントでメモリ リークがあるようです。ただし、このシナリオでは、高いメモリ使用量は予想される動作です。コンピューターがシステムのメモリが不足実行されている場合、またはアドレス指定可能なメモリの不足のため、プロセスが動作しなくなった場合は、メモリ リーク条件があります。

場合は、コンピューターつまり BizTalk Server を実行すると、単一プロセッサ システムでは、ですが。NET フレームワークワークステーションのバージョンは、実行エンジンを使用します。これがデフォルトです。動作します。ワークステーション ガベージ コレクター割り当てアルゴリズムではありません。スケーリングやスループットに設計されて。このガベージ コレクターを使用します。同時実行ガベージ コレクター メソッド。これらのメソッドが対応しています。複雑なユーザー インターフェイスを持つアプリケーション。このようなアプリケーションを必要とする可能性があります。積極的なガベージ コレクションです。

重要このセクション、方法、またはタスクには、レジストリの変更方法が記載されています。レジストリを誤って変更すると、深刻な問題が発生することがあります。レジストリを変更する際には十分に注意してください。万一に備えて、編集の前にレジストリをバックアップしてください。問題が発生した場合でも、レジストリを復元できます。レジストリのバックアップ方法および復元方法の詳細については、以下のサポート技術情報番号をクリックしてください。
322756 Windows でレジストリをバックアップおよび復元する方法
場合によっては、マルチプロセッサ システムで、ワークステーション バージョンの実行エンジンを実行するのに適切な場合があります。実行エンジンのワークステーション バージョンに切り替えるには、次のレジストリ キーを使用できます。

BizTalk 2006 およびそれ以降のバージョン

CRL をホスト文字列の次のレジストリ キーに対応する値を作成します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkHostName\CLR のホスティング

名前: フレーバー
データ: wks

BizTalk 2004

CRL をホスト文字列の次のレジストリ キーに対応する値を作成します。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\BTSSvc {GUID} \CLR ホスト

名前: フレーバー
データ: wks

詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/ms973838

http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations.aspx

一般的な原因と解決方法

プロセスのメモリ使用量と物理メモリの使用量のしきい値を調整します。

プロセスのメモリ使用量物理メモリ使用量のしきい値を調整する BizTalk Server の 2006 年とそれ以降のバージョンで変更できます。
  • 既定では、 プロセスのメモリ使用量 しきい値の調整は 25 に設定されます。この値を超える、BizTalk プロセスのメモリ使用量が 300 MB 以上の場合は、制限の条件発生します。32 ビット サーバーでは、プロセスのメモリ使用量値 50 を増やすことができます。64 ビット サーバーでは、この値を 100 に増やすことができます。調整を行う前に複数のメモリ消費量が、BizTalk プロセスができます。
  • 物理メモリの使用量 制限のしきい値を既定値の 0 です。このしきい値は、システムの合計メモリを測定します。0 以外の値が構成されている場合は、非 BizTalk プロセスが大量のメモリを使用している場合は、そのため、制限の条件発生します。
制限のしきい値の詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn.microsoft.com/en-us/library/aa559628.aspx

ステータス退避のしきい値を調整します。

64 ビット ホストでオーケストレーションを実行するとが多すぎるのステータス退避、既定メモリ ステータス退避のしきい値の可能性があります。この問題の詳細については、次のマイクロソフト開発ネットワーク (MSDN) web サイトの既定の退避プロパティのトピックを参照してください。
http://msdn.microsoft.com/en-us/library/aa560586.aspx
メモ64 ビットのホストは、BizTalk Server 2006年およびそれ以降のバージョンでサポートされています。

32 ビットのホスト インスタンスで同じハードウェアでは、既定メモリ ステータス退避のしきい値を調整するを使用して、同じオーケストレーションを実行すると観測のステータス退避は名目です。

拡張メモリのアドレス空間では、64 ビット アーキテクチャを提供するため (16 TB の 4 GB ではなく)、64 ビットのホスト インスタンスは、32 ビットのホスト インスタンスより大幅に多くのメモリを割り当てられます。超える、既定メモリ調整しきい値が発生することができます。

この現象を回避するには、BTSNTSvc64.exe.config ファイル内の VirtualMemoryThrottlingCriteria および PrivateMemoryThrottlingCriteria の値を変更します。オーケストレーション インスタンスによって割り当てられるメモリの最大量を確認するには Process\Virtual バイトと Process\Private バイトのパフォーマンス モニター カウンターを使用します。
  • OptimalUsage の値を次の条件に基づいて 2 つのプロパティを設定します。
    VirtualMemoryThrottlingCriteria: \Process\Virtual バイト値 + 10 %
    PrivateMemoryThrottlingCriteria: \Process\Private バイト値 + 10 %
  • MaximalUsage OptimalUsage 値 + 30% に両方のプロパティを設定します。
\Process\Virtual のオーケストレーション インスタンスのバイトのパフォーマンス モニター カウンターの値が 5,784,787,695 バイト (5,517 MB) の場合は、VirtualMemoryThrottlingCriteria 6,069 mb (5,784,787,695 * 1.10 = 6,363,266,464.5 バイト) をなど、OptimalUsage の値を設定します。VirtualMemoryThrottlingCriteria 7,889 mb (6,363,266,464.5 * 1.30 = 8,272,246,403.85 バイト) の MaximalUsage の値を設定します。

\Process\Private バイトのパフォーマンス モニター カウンターの値が 435689400 バイト (415 MB) の場合は、PrivateMemoryThrottlingCriteria 457 mb (435689400 * 1.10 = 479258340 バイト) の OptimalUsage の値を設定します。594 Mb (479258340 * 1.30 = 623035842) PrivateMemoryThrottlingCriteria の MaximalUsage の値を設定します。

次の使用例は、調整を減らすために、BTSNTSvc64.exe.config ファイルに次の値を指定します。
元に戻す全体を表示する
パフォーマンス モニターのカウンターメモリの割り当てOptimalUsageMaximalUsage
\Process\Virtual バイト5784787695 バイト (5517 MB)60697889
\Process\Private バイト435689400 バイト (415 MB)457594
これらの値、BTSNTSvc64.exe.config ファイルには次のように表現されます。
<xlangs>
      <Configuration>
                  <Dehydration>
                              <VirtualMemoryThrottlingCriteria OptimalUsage="6069" MaximalUsage="7889" IsActive="true" />
                              <PrivateMemoryThrottlingCriteria OptimalUsage="457" MaximalUsage="594" IsActive="true" />
                  </Dehydration>
      </Configuration>
</xlangs>
オーケストレーション ホスト インスタンスが実行されているを確認するから \BizTalk:Messaging\ID のプロセス ID のプロセスとプロセスのパフォーマンス モニター カウンターの \Process\ID と一致することができます。次に、平均の値に対応する \Process\Virtual バイトと \Process\Private バイトのパフォーマンス モニター カウンターを表示を確認してください。

SQL Server 2008 BizTalkMsgBoxDb データベースが実行されている場合、大幅なパフォーマンス低下高のステータス退避の可能性があります。

BizTalk Server サービス パックと累積更新プログラム

BizTalk Server サービス パックと累積更新プログラムは、最新の修正プログラムが含まれます。これら System.OutOfMemoryException の既知の問題に影響を与えるものがあります。

2281783 サービス パック、および累積的な更新プログラムの一覧については、BizTalk Server 2006 R2

Microsoft BizTalk Server 2004 Service Pack 2

HeapDeCommitFreeBlockThreshold

既定では、theHeapDeCommitFreeBlockThreshold のレジストリ キーの値は 0 です。ヒープを意味する 0管理者は利用可能になる各 4 キロバイト (KB) のページをデコミットします。デコミット操作は、仮想メモリの断片化があります。作業の種類に、ヒープ マネージャーでは、 HeapDeCommitFreeBlockThresholdの設定のサイズに依存しますがシステムの動作します。0X00040000 のサイズは、推奨される開始です。値です。

値を変更する前に、次の情報を検討してください。の、
HeapDeCommitFreeBlockThreshold
レジストリキー:
  • この変更にはメモリの断片化のみ適用されます。問題があります。
  • この変更は、システム全体です。そのため、ほとんどの処理では多くのメモリを起動時に使用します。
  • だけこの BizTalk システムを変更することを検討します。サーバーの主な役割としては。
仮想メモリの断片化を減らすために、増やすことができます。HeapDeCommitFreeBlockThresholdの設定の値を変更するには、ヒープ マネージャーのサイズ、次のレジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Sessionマネージャー


値の名前:HeapDeCommitFreeBlockThreshold
値の種類: REG_DWORD
[値のデータ:0x00040000 (これは推奨される開始値です)。
既定値: なし
HeapDeCommitFreeBlockThreshold レジストリ キーの詳細については、「サポート技術情報」資料を参照するには、次の資料番号をクリックしてください。
315407"HeapDecommitFreeBlockThreshold"レジストリ キー

操作を変換します。

BizTalk Server で、送信ポート、受信ポート、非常にサイズの大きいメッセージの XML 変換の操作を実行するか、XLANG では、XSL に変換すると、メッセージ全体をメモリに読み込みます。

するにはこの問題を解決、次の方法のいずれかを使用します。
  • その BizTalk Server メッセージの数を減らすプロセスと同時にします。
  • される XML メッセージのサイズを小さく変換します。
System.Policy.Security.Evidenceオブジェクトは、変換ファイルで頻繁に使用され、メモリ容量を消費することができます。インライン c# (またはその他のインライン言語) を使用して、スクリプト functoid がマップに含まれている場合は、アセンブリがメモリに作成されます。System.Policy.Security.Evidenceオブジェクトは、オブジェクトの実際の呼び出し元のアセンブリを使用します。このような状況は、BizTalk サービスを再起動するまで削除されませんするルート オブジェクトを作成します。

ほとんどは、既定の BizTalk の functoid のインライン スクリプトとして実装されています。これらのアイテムのメモリを収集するためにオブジェクトを定義している可能性があります。メモリの使用量を最小化するには、小規模のアセンブリにこれらの functoid を使用して、マップを配置することをお勧めします。次に、そのアセンブリを参照します。次の表を使用して、どの functoid がインライン スクリプトを使用して確認して、どの functoid がインライン スクリプトを使用しないでください。

[2 番目の列では、この functoid は、インライン スクリプトとは、実装されていると、メモリの収集を定義しているオブジェクトを引き起こすことを意味はい]。"No"この functoid がインライン スクリプトとは、実装されていないことと、メモリの収集を定義しているオブジェクトがあります。
元に戻す全体を表示する
Functoidインライン スクリプトでしょうか。
すべての文字列 Functoid[はい]
すべての数値演算 Functoid[はい]
IsNil 以外のすべての論理 Functoid[はい]
IsNil Functoid の論理いいえ
すべての日付/時刻 Functoid[はい]
すべての変換 Functoid[はい]
すべての科学的な Functoid[はい]
すべての累積的な Functoid[はい]
すべてのデータベース Functoidいいえ
高度な Functoidインライン スクリプトでしょうか。
ループ Functoidいいえ
値のマッピング Functoid をフラット化いいえ
Functoid をアサートします。いいえ
テーブル抽出 Functoidいいえ
ループ Functoid をテーブルにします。いいえ
スクリプト Functoid でインライン c#[はい]
スクリプト Functoid でインライン JScript.NET[はい]
スクリプト Functoid でインライン Visual Basic。NET[はい]
スクリプト Functoid を [インライン XSLTいいえ
スクリプト Functoid を [インライン XSLT 呼び出しテンプレートでいいえ
スクリプト Functoid の外部アセンブリを呼び出すいいえ
Nil 値 Functoidいいえ
値のマッピング Functoidいいえ
一括コピー Functoidいいえ
繰り返し Functoidいいえ
インデックス Functoidいいえ
レコード カウント Functoidいいえ
BizTalk Server 2006年およびそれ以降のバージョン用のメモリ管理を大幅に向上します。大規模なドキュメント。これを行うには、BizTalk Server の構成可能なメッセージを実装します。サイズのしきい値は、変換処理中にドキュメントをメモリに読み込みます。既定のメッセージ サイズのしきい値は 1 MB です。TransformThreshold の設定の詳細についてを参照してください、次のマイクロソフト開発ネットワーク (MSDN) web サイト。
http://msdn2.microsoft.com/en-us/library/aa560481.aspx

大きな属性値と大きな要素値

場合は、受信 BizTalk Server を実行パイプラインまたは送信パイプラインは、XML ドキュメントに、ペイロードの処理します。メモリの場合は、ドキュメントに 1 つまたは複数の次のエンティティが含まれています。
  • 大きな属性値
  • 大きな要素値
  • 大規模な属性または要素のタグ
この問題を解決するには、これらのエンティティのサイズを制限します。この場合はメソッドを実行できない、BizTalk ホスト インスタンスが複数を処理しないかどうかを確認同時にこれらなどの文書。

カスタム パイプライン コンポーネント

全体を読み込み、カスタム パイプライン コンポーネントを使用しています。メモリにストリームします。BizTalk Server に含まれているすべてのコンポーネントストリーミング以外の変換をサポートしてください。これらのコンポーネントを使用しないでください。ストリーミング中にメモリを指定します。ただし、カスタム パイプライン コンポーネントをサポートしていませんストリーミング。

負荷が高いをストリーミングします。

その重ストレス下で稼動している場合のホストのメモリが不足して送信します。BizTalk Server は、送信パイプラインとアダプターのストリーミング機能を送信します。でストリーミング、各コンポーネントは、ストリームの小さなフラグメントをメモリに読み込みます。各メッセージに、メッセージと共に他のデータ構造が含まれています。規模の大小に使用できるコンテキストは、この現象、BizTalk の動作に影響します。サーバーの負荷。

BizTalk Server の動作が影響を受けるメッセージ数が事前に構成されたエンジンをロードするためです。数エンジンを読み込むメッセージが上に表示される値に基づいて、LowWaterMark フィールドは、Adm_serviceClass テーブルの HighWaterMark フィールド。Adm_serviceClass の表は、BizTalk 管理データベースにです。これらの値BizTalk Server またはプロセスに送信するメッセージの数を制御する、同じ時間。

HighWaterMarkの値は、エンジンが処理するメッセージの合計数です。同時にします。既定値は 1 CPU あたり 200 メッセージです。したがって、上では8 プロセッサのサーバーで、送信ホスト 1,600 メッセージ (200 * 8) を処理するのにしようと同じ時間。各メッセージが 50 KB であるとすると、メッセージは 80 と同じMB (1, 600 × 50 = 80、000 KB)。

この問題を解決するには、 HighWaterMarkの値とデータベース内のLowWaterMarkの値を変更できます。サイズは、使用する値に依存します。メッセージ。

一般的な原因の詳細については、メモリ不足の条件、「メモリ拡張で BizTalk メッセージ」セクションを参照してください。次のマイクロソフト web サイトに。
http://blogs.msdn.com/biztalkperformance
BizTalk Server 2006年およびそれ以降のバージョンは、既定のホストを変更できます。設定を調整します。詳細については、既定のホストを変更する方法設定を調整する、次のマイクロソフト開発ネットワーク (MSDN) web サイトを参照してください。
http://msdn2.microsoft.com/en-us/library/aa559628.aspx

問題を単純化しようとしてください。

メモリ リークを特定する場合は、原因を判断しようカスタム コンポーネントを削除するか、マップを簡略化します。再現するのには、また、実行してください。単純なオーケストレーションまたは単純なソリューションを使用して、問題。一般に、別に作成する必要がありますが受信アダプターのホストをします。また、必要があります。送信アダプター用の別の送信ホストを作成します。このメソッドを使用すると各アダプターは、別のプロセスで実行できます。BizTalk Server のプロセスがメモリ不足の条件が発生した場合は、したがって、しますどのコンポーネントが含まれています知っています。

トラブルシューティングの手順

メモリ不足の条件を解決するには、デバッグを使用します。診断ツールを使用して時間の経過と共にメモリの割り当てを監視してください。デバッグの診断ツールを作成したり、メモリ リークのダンプ ファイル (.dmp) を分析します。場合、メモリ リークのトラブルシューティングを行う、目標は、高前に Leaktrack.dll を添付すること時間の経過と共にメモリの増加をキャプチャするには、メモリ状態を再現します。Leaktrack.dllデバッグ診断ツールが含まれています。
  1. デバッグの診断ツールをインストールします。

    次のファイルは、Microsoft ダウンロード センター」からダウンロード可能なです。

    元に戻す画像を拡大する
    ダウンロード
    デバッグの診断ツールのパッケージを今すぐダウンロードします。

    マイクロソフトのサポート ファイルをダウンロードする方法の詳細については、「サポート技術情報」資料を参照するには、次の資料番号をクリックしてください。
    119591 オンライン サービスからマイクロソフトのサポート ファイルを入手する方法
    マイクロソフトは配布ファイルのウイルスをスキャンします。マイクロソフトは、ファイルが転記された日付に利用可能な最新のウイルス検出ソフトウェアを使用します。ファイルは、ファイルに不正な変更を防止するセキュリティが強化されたサーバーに格納されます。
  2. パフォーマンス モニターを使用して、システムに関するデータを収集するのにはパフォーマンス。このデータの効率性に関する重要な指標を提供可能性があります。BizTalk Server 環境。目的はプロセスのパフォーマンスをキャプチャすること時間の経過と共に。したがって、パフォーマンス モニター ログ、メモリ リークが発生するを有効にします。発生します。

パフォーマンス モニター ログ機能を使用する方法

ログに記録するデータを選択します。
ログに記録するデータを選択するには、適切なメソッドを使用します。オペレーティング システム:
  • Windows Server 2008 と Windows Server 2008 R2
    1. [管理ツール] を開きます。 信頼性およびパフォーマンス モニター.
    2. Usbehci.sys パフォーマンス モニター[ 新しい プロパティ データ コレクタ セット.
    3. で、 名前 ボックスで、わかりやすい名前を入力しをクリックしてください 次へ.
    4. ルート ディレクトリを確認し、クリックしてください 次へ.
    5. クリック このデータ コレクター セットを今すぐ開始します。プロパティ 終了日します。.
    6. 展開 データ コレクタ セット、展開 ユーザー定義 ファイルを選択します。
    7. Usbehci.sys システム モニター ログプロパティ をクリックします。.
    8. クリック 追加 で、 パフォーマンス カウンター タブの次のオブジェクトを選択しをクリックして 追加 各オブジェクトを選択するとします。
      • .Net の CLR 例外
      • .Net の CLR メモリ
      • BizTalk: メッセージング
      • BizTalk:TDDS
      • メモリ
      • プロセス
      • プロセッサ
      • Xlang オーケストレーション
      また SQL Server がローカルの場合は、次のオブジェクトを追加します。
      • SQLServer:Databases
      • SQLServer:General の統計情報
      • SQLServer:Memory マネージャー
    9. クリック ].
    10. 変更、 サンプルの間隔の値 ボックスに 5 秒.

      サンプルの間隔の値と監視を開始する時間は、主観的です。メモリ リークを再現する場合これらの値によって異なります。ログ ファイルが大きくなることができますので、サーバーを過負荷に必要な情報を取得できる間隔を指定します。
    11. クリック ].
    データの収集を停止するをクリックします。 停止 で、 アクション メニュー。
  • Windows server 2003 または Windows XP の
    1. 展開 パフォーマンス ログとアラート.
    2. Usbehci.sys カウンター ログ、しクリック 新しいログの設定.、 新しいログの設定ダイアログ ボックスが表示されます。
    3. で、 名前 ボックスで、説明を入力名前をクリックし. ].
    4. ログ ファイルの場所に注意してください。(クリックすることもできます、 ログ ファイル タブをクリックし. 構成します。 するにはログ ファイルの場所を変更します。)
    5. クリック カウンターを追加します。.
    6. 選択 すべてのカウンターすべてインスタンス.
    7. で、 パフォーマンス オブジェクト リストの選択次のオブジェクト。クリック 追加 各オブジェクトを選択するとします。
      • .Net の CLR 例外
      • .Net の CLR メモリ
      • BizTalk: メッセージング
      • BizTalk:TDDS
      • メモリ
      • プロセス
      • プロセッサ
      • Xlang オーケストレーション
      また SQL Server がローカルの場合は、次のオブジェクトを追加します。
      • SQLServer:Databases
      • SQLServer:General の統計情報
      • SQLServer:Memory マネージャー
    8. クリック 閉じる.
    9. 値を変更します。 データのサンプリング間隔 5 秒後にします。

      データのサンプリング間隔の値と監視を開始する時間は、主観的です。メモリ リークを再現する場合これらの値によって異なります。ログ ファイルが大きくなることができますので、サーバーを過負荷に必要な情報を取得できる間隔を指定します。
    10. クリック ].
    データの収集を停止するには、カウンター ログの名前を右クリックしをクリックしてください 停止.
ダンプ ファイルを取得します。
ダンプ ファイルを取得するには、次の方法のいずれかを使用します。
  • 方法 1: 自動
    DebugDiag でメモリとハンドル リーク ルールを作成し、メモリ ダンプをキャプチャすることをお勧め。メモリとハンドル リーク ルールは自動的に Leaktrack.dll をアタッチします。これは、メモリの割り当てを追跡するために使用されます。メモリとハンドル リーク ルールを作成するには、次の手順を実行します。
    1. デバッグを開始します。診断ツール 1.1 です。
    2. 選択 メモリとハンドル リークが発生、、クリックして、 次へ.
    3. 詳細 Btsntsvc.exe プロセスをクリックし. 次へ.
    4. リーク ルールの構成] ページで、次の手順を実行します。
      1. オンにし、 ルールのときにすぐを追跡するメモリを開始します。 チェック ボックス。それ以外の場合は、BTSNTSvc.exe プロセスで LeakTrack.dll が注入された前にウォーム アップ時間を指定できます。
      2. クリック 構成します。、し、次の操作を行います。
        • いることを確認します。 クラッシュ ルールを自動作成します。 選択されています。BTSNTSvc.exe プロセスを停止する場合は、このオプションを選択すると、メモリ ダンプを自動的に作成されます。
        • オンにし、 仮想バイトに達すると、userdump を生成します。 チェック ボックスをオンしの既定値を保持します。 1024.
        • オンにし、 それぞれの追加 チェック ボックスをオンし、200 の既定値を保持します。
        到達オプションの仮想バイトを選択することによって、メモリ ダンプを自動的とき作成されます仮想バイトは、1024 MB を使用します。200 MB の仮想バイトを増加する場合は、別のメモリ ダンプが自動的に作成されます。
      3. Save & [閉じる] をクリックします。
      4. 次へをクリックします。
    5. 選択ダンプ場所とルール名ページをクリックします。 次へ.

      ダンプ ファイルのパスを変更することもできます、 Userdump の場所 このページのボックスです。
    6. クリック 終了日します。 ルールを今すぐアクティブにするには。
    規則のステータスを追跡しています。メモリ ダンプが作成されるたびに、Userdump のカウント列 [規則] タブで、値が増加します。デフォルトのメモリ ダンプの場所は、Files\DebugDiag\Logs のようです。
  • 方法 2: 手動
    手動で Leaktrack.dll をアタッチし、メモリ ダンプ ファイルを手動で取得することができます。これはメモリ ダンプを作成するときに制御できます。以下が手順例となります:
    1. デバッグを開始します。診断ツール 1.1 です。
    2. クリックして、 プロセス タブ。
    3. 右クリックし、 Btsntsvc.exe プロセスをクリックし. リークの監視.
    4. で、 デバッグの診断ツール ダイアログボックスで、をクリックしてください [はい]プロパティ ].
    メモリ ダンプを作成する前に、プロセスを停止したときに、同じ Btsntsvc.exe プロセスを監視するクラッシュ ルールを作成します。
    1. デバッグ診断ツール 1.1 を開始します。
    2. 選択 クラッシュプロパティ 次へ.
    3. 選択 特定のプロセスプロパティ 次へ.
    4. 同じ Btsntsvc.exe プロセスを選択しをクリックしてください 次へ.
    5. で、 高度な構成 (オプション) ページで、クリックしてください 次へ.
    6. で、 ダンプの場所と、ルールの名前 (省略可能) を選択します。 ダイアログ ボックス、クリックして 次へ.
    7. 選択 ルールを今すぐアクティブ化します。をクリックし、[完了] をクリックします。
    プロセスが RAM の 60 〜 80% に達すると、Btsntsvc.exe のプロセスを右クリックし、クリックしてください フル Userdump を作成します。.ユーザー ダンプを作成する前に、BizTalk プロセスが停止した場合、クラッシュ ルールする必要があります有効にし、メモリ ダンプを作成します。
パフォーマンス モニター ログを停止します。
パフォーマンス モニターのデータとメモリ ダンプをキャプチャする場合は、メモリ ダンプを作成した後、約 2 分間のパフォーマンス モニターのログを停止します。
ダンプ ファイルを分析します。
メモリ リークの原因を判断するには、デバッグを使用できます。診断ツールを使用してダンプ ファイルを分析します。以下が手順例となります:
  1. クリックして、 高度な分析タブ。
  2. クリック データ ファイルを追加します。、し、検索、.dmp ファイル。
  3. 詳細 メモリの負荷の分析スクリプトをクリックし. 分析を開始します。.
既定では、分析レポート ファイル (.mht)分析が完了したらタイプの Files\DebugDiag\Reports フォルダーに作成されます。レポート ファイルは、お使いのブラウザーにも表示されます。レポート ファイル分析の結果が含まれています。さらに、レポート ファイルが含まれている可能性があります。メモリ リークを解決する方法を推奨します。

ユーザー設定を使用する場合Dll は、分析用のカスタム .pdb ファイルのシンボル パスを追加できます。行うにはこれには、次の手順を実行します。
  1. デバッグの診断ツールを開きます。
  2. で、 ツール メニューをクリックして オプション設定.
  3. で、 デバッグ用のシンボル検索パスボックスで、シンボル パスを入力します。
ヘルプのダンプ ファイルを分析する場合は、Microsoft にお問い合わせください。カスタマー ・ サポート ・ サービスです。カスタマー サポート サービスの完全な一覧について番号とサポート コストに関する情報を電話、次を参照してください。Microsoft の web サイト:
http://support.microsoft.com/contactus/?ws=support
カスタマー サポート サービスに連絡する前に、ダンプ ファイル、パフォーマンス モニターのログ、分析レポートのファイル、更新されたイベント ログ (.evt ファイル) を圧縮します。これらのファイルには、BizTalk Server エンジニア リングをサポートするを送信する必要があります。

プロパティ

文書番号: 918643 - 最終更新日: 2012年6月13日 - リビジョン: 4.0
キーワード:?
kbhowto kbmt KB918643 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:918643
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com