Problembehandlung bei einem Speicherverlust oder eine Out-of-Memory-Ausnahme in der BizTalk Server-Prozess

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 918643 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Zusammenfassung

Speicherlecks sind ein häufiges Problem. Sie müssen versuchen mehrere Schritte, die bestimmte verursacht einen Speicherverlust oder eine Out-of-Memory (OOM) Ausnahme in Microsoft BizTalk Server zu finden. Dieser Artikel beschreibt wichtige Dinge zu beachten beim Auswerten von Speicherauslastung und mögliche Probleme im Zusammenhang mit dem Speicher. Diese Überlegungen sind unter anderem:
  • Physischer RAM
  • Die Verarbeitung von großen Nachrichten
  • Verwenden von der / 3GB Option
  • Verwendung von benutzerdefinierten Komponenten
  • Welche Version von der Microsoft.NET Framework ist das System ausgeführt.
  • Die Anzahl der Prozessoren

EINFÜHRUNG

Dieser Artikel beschreibt, wie einen Speicherverlust beheben oder eine Out-of-Memory-Ausnahme in der BizTalk Server-Prozess von Microsoft BizTalk Server.

Weitere Informationen

Der BizTalk Server-Prozess möglicherweise einen Speicherverlust auftreten Wenn mehr als 50 verbraucht Speicherauslastung in Microsoft Windows Task-Manager Prozent des physischen RAM. Ein Speicherverlust kann dazu führen, dass eine Out-of-Memory-Ausnahme Wenn die Speicherauslastung erhöht, bis der Prozess nicht genügend Systemspeicher ausgeführt wird oder bis der Prozess nicht mehr funktioniert.

Wenn dieses Problem auftritt, eine Warnmeldung angezeigt, die ähnelt die folgende Meldung wird im Ereignisprotokoll protokolliert:

Ereignis Typ: Warnung
Kategorie: (1)
Ereignis-ID: 5410
Beschreibung: Ein Fehler aufgetreten, die den BizTalk-Dienst beenden benötigt. Die häufigsten Ursachen sind ein unerwarteter Speicherfehler und keine Verbindung hergestellt wird oder ein Verlust der Konnektivität zu einem BizTalk-Datenbanken. Der Dienst wird geschlossen und ein automatischer Neustart in 1 Minute. Wenn die problematische Datenbank nicht verfügbar ist, wird dieser Zyklus wiederholt.
Fehlermeldung: Ausnahme des Typs System.OutOfMemoryException ausgelöst wurde.
Fehlerquelle:
BizTalk-host Name: BizTalkServerApplication
Windows-Dienstname: BTSSvc {DCC899FE-C62F-41BE-851A-8720B2EB9C14}

Ereignistyp: Warnung
Kategorie: (1)
Ereignis-ID: 5410
Beschreibung: Fehler, die den BizTalk-Dienst beenden benötigt. Die häufigsten Ursachen sind folgende: 1) eine unerwartete Fehlermeldung über unzureichenden Arbeitsspeicher. ODER 2) keine Verbindung hergestellt wird oder ein Verlust der Konnektivität zu einem BizTalk-Datenbanken. Der Dienst wird geschlossen und ein automatischer Neustart in 1 Minute. Wenn die problematische Datenbank nicht verfügbar ist, wird dieser Zyklus wiederholt.
Fehlermeldung: Ausnahme vom Typ "System.OutOfMemoryException" ausgelöst wurde.
Fehlerquelle: Mscorlib
BizTalk-Host-Name: BizTalkServerApplication
Windows-Dienstname: BTSSvc$ BizTalkServerApplication

Wichtige Überlegungen

Physischen RAM und Speichernutzung

Da es sich um erwartete Verhalten für einen Prozess zu verwenden, etwa die Hälfte des Arbeitsspeichers ist, verwenden Sie die Speicherauslastung als Richtlinie. Z. B. wenn der BizTalk Server verfügt über 4 Gigabyte (GB) RAM und der BizTalk Server-Prozess etwa 500 Megabyte (MB) RAM verwendet, gibt es möglicherweise nicht Leck. Wenn der BizTalk Server-Prozess etwa 1 GB RAM verwendet wird, liegt möglicherweise ein Speicherverlust oder eine hohe Speicherauslastung Situation. Der Arbeitsspeicherverbrauch kann durch eine lang andauernde gespeicherte Prozedur oder die Orchestrierung verursacht werden. Stellen Sie sicher, dass Sie, wie viel Speicher der BizTalk-Host in der Regel verwendet wissen, um zu bestimmen, ob ein Speicherverlust oder eine hohe Speicherauslastung Bedingung auftritt.

Große Nachrichten

Wenn BizTalk Server große Nachrichten verarbeitet, scheint das System einen Speicherverlust zu haben. Allerdings die Nachrichten möglicherweise viel Arbeitsspeicher verwendet. Weitere Informationen zu großen Nachrichten finden Sie auf den folgenden Websites von Microsoft Developer Network (MSDN):
http://blogs.msdn.com/biztalk_core_engine/Archive/2005/02/28/381700.aspx

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

Beachten Sie auch, dass hohe Speicherauslastung ausgegangen werden kann, wenn BizTalk Server verarbeitet große Nachrichten. Sie möchten Ihre Hardware zu aktualisieren die Leistungsanforderungen der BizTalk Server in Ihrer Umgebung zu erfüllen.

Wie lange es dauert, den Speicherverlust zu reproduzieren

Speicherverluste können sofort auftreten, oder sie können sich im Laufe Zeit. Beide Szenarien sind.

Verwendung des Schalters/3 GB in 32-Bit-Computern

In der Regel kann ein Prozess 2 GB virtuellen Adressraum zugreifen. Die Befehlszeilenoption/3 GB ist eine Option für Systeme, die mehr adressierbare Arbeitsspeicher erfordern. Diese Option kann die Speicherauslastung für die Verarbeitung von Nachrichten verbessern. Allerdings kann die Option/3 GB nur 1 GB adressierbaren Speicher für Kernel-Modus-Operationen. Dieser Schalter kann darüber hinaus das Risiko von nicht genügend Speicher-Pool erhöht.

Weitere Informationen zu der Gb/3 GB wechseln Sie, finden Sie auf die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn.Microsoft.com/en-us/library/ms791558.aspx
Wenn die Option/3 GB auf einem 32-Bit-Version von Windows aktiviert ist, kann der Prozess 3 GB virtuellen Adressraum zugreifen. Leerzeichen bei, wenn der Prozess große Adresse ist bekannt. Ein Prozess große Adresse ist bekannt, wenn die ausführbare Datei der IMAGE_FILE_LARGE_ADDRESS_AWARE Flag im Bildheader gesetzt hat. Da der BizTalk-Prozess große Adresse ist bekannt, BizTalk profitiert von der Option/3 GB.

Wenn eine 32-Bit-BizTalk-Hostinstanz auf 64-Bit-Version von Windows (AMD64) ausgeführt wird, die Vorteile des BizTalk-Prozess aus dem Arbeitsspeicher 4 GB Adressraum da BizTalk große Adresse ist bekannt. Verschieben Ihre high Memory-Anwendungen auf einem 64-Bit-Server kann daher die beste Lösung sein.

Ein 64-Bit-BizTalk-Prozess auf einer 64-Bit-Version von Windows (AMD64) verfügt über 8 TB adressierbaren Speicher.

Sie sollten auch die virtuelle Bytes und die privaten Bytes, die vom Prozess verwendet wird. Eine BizTalk-Hostinstanz (die eine.NET Framework-Anwendung ist) möglicherweise eine Fehlermeldung über unzureichenden Arbeitsspeicher, bevor der virtuelle Bytes-Wert von 2 GB erreicht. Dies kann auftreten, obwohl die maximale Speichergröße, die über einen Prozess auf einem 32-Bit-Version von Windows (ohne die Befehlszeilenoption/3 GB ) angesprochen werden 2 GB ist. Eine Erläuterung, weshalb dies auftreten kann finden Sie auf den folgenden Websites von Microsoft Developer Network (MSDN):
http://msdn.Microsoft.com/en-us/library/ms972959.aspx
http://blogs.msdn.com/TESS/Archive/2005/11/25/496898.aspx
Die Befehlszeilenoption/3 GB erhöht auch die maximalen privaten Bytes von den BizTalk-Prozess von 800 MB bis 1800 MB. Weitere Informationen zur Leistung von.NET Framework-Anwendung mit der Option/3 GB aktiviert finden Sie auf die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.Microsoft.com/en-us/library/ms998583.aspx
In der folgende Tabelle werden diese Informationen zusammengefasst und praktischen Einschränkungen für virtuelle Bytes und die privaten Bytes enthält.
Tabelle minimierenTabelle vergrößern
ProzessWindowsAdressierbaren Speicher (mit einem großen Unterstützung langer Adressen Prozess)Praktische Grenze für virtuelle bytesPraktische Grenze für private bytes
32-bit32-bit2 GB1400 MB800 MB
32-bit32-Bit mit 3 GB3 GB2400 MB1800 MB
32-bit64-bit4 GB3400 MB2800 MB
64-bit64-bit8 TBNicht zutreffendNicht zutreffend
Weitere Informationen zu den adressierbaren Arbeitsspeicher für 32-Bit und 64-Bit-Windows finden Sie auf die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn.Microsoft.com/en-us/library/aa366778.aspx
Die folgende Tabelle enthält die PAE und / 3GB Unterstützbarkeit für verschiedene Versionen von BizTalk Server.
Tabelle minimierenTabelle vergrößern
ProduktPAE3GB
BizTalk Server 2004"Ja"Nein
BizTalk Server 2006"Ja""Ja"
BizTalk Server 2006 R2"Ja""Ja"
BizTalk Server 2009"Ja""Ja"
Wenn die Option/3 GB zu den Leistungsanforderungen eines Computers, die aktiviert werden müssen Ausführen von BizTalk Server, Sie sollten der Gruppe BizTalk Server hinzufügen möchten. So können Sie speicherintensiven Hostinstanzen skalieren.

BizTalk-Komponenten die innerhalb eines Prozesses (Internet Information Services, IIS) ausgeführt werden kann Außerdem profitieren Sie, wenn der Schalter/3 GB aktiviert ist.

Die Befehlszeilenoption/3 GB wird nicht auf Computern unterstützt, auf dem Windows SharePoint Services 2.0 oder höher oder SharePoint Portal Server 2003 SP2 oder höher ausgeführt werden. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
933560Die WindowsServer 2003-Option/3 GB wird in Windows SharePoint Services 2.0 oder höheren Versionen oder in SharePoint Portal Server 2003 Service Pack 2 oder in späteren Versionen unterstützt.

Verwendung von benutzerdefinierten Komponenten

Wenn Sie benutzerdefinierte Komponenten wie Rohrleitungen oder Service-Komponenten verwenden, Sie müssen wissen, was diese Komponenten führen. Sie müssen auch die mögliche Auswirkungen dieser Komponenten auf Speicherverwendung kennen. A Allgemeine Speicherproblem tritt auf, wenn eine Komponente ein Dokument transformiert wird. Die Transformationsvorgang wird eine arbeitsspeicherintensive Operation. Wenn ein Dokument wird transformiert, übergibt BizTalk Server die Meldungsfolge an Microsoft .NET Innerhalb des Prozesses BizTalk Framework XslTransform -Klasse.

Ein anderes häufiges Problem Tritt auf, wenn intensive Zeichenfolgenbearbeitung. Intensive Zeichenfolge Manipulation kann viel Speicher beanspruchen. Weitere Informationen zu Möglichkeiten Verbessern Sie Leistung, finden Sie auf die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.Microsoft.com/en-us/library/ms998547

.NET Framework-Version

Das Microsoft.NET Framework 2.0 und das.NET Framework 1.1 haben ein anderes Speichermodul Verhalten. Aus diesem Grund möglicherweise unterschiedliche Ergebnisse zwischen ihnen angezeigt werden. Wenn Sie das.NET Framework verwenden, bestätigen Sie, dass das neueste.NET Framework Service Pack 1 installiert ist. Diese Servicepacks mehrere bekannte Speicherprobleme zu beheben. Weitere Informationen klicken Sie auf die folgenden Artikelnummern:

945757 In.NET Framework 2.0 Service Pack 1 behobene Probleme
867460 Liste der in.NET Framework 1.1 Service Pack 1 behobenen Probleme

Anzahl der Prozessoren

Die common Language Runtime (CLR) hat die folgenden garbage Kollektoren (GCs):
  • Workstation ("Mscorwks.dll")
  • Server (Mscorsvr.dll)
Wenn der Computer mit BizTalk Server ist ein Multiprozessorsystem handelt, verwendet das.NET Framework die Serverversion des Ausführungsmoduls. Dies ist das Standardverhalten. Der Server-Garbagecollector ist für maximalen Durchsatz ausgelegt. Darüber hinaus skaliert der Server-Garbagecollector sehr hohen Leistung bereitstellen. Diese Garbage Collector reserviert Speicher und dann später Speicher für hohe Leistung auf dem System frei. Aus diesem Grund scheint ein Computer mit BizTalk Server zusammen mit.NET Framework-Komponenten einen Speicherverlust zu haben. In diesem Szenario ist jedoch hohe Speicherauslastung erwartet. Wenn der Computer nicht genügend Systemspeicher ausgeführt wird oder wenn der Prozess nicht mehr funktioniert wegen unzureichendem Speicherplatz nicht adressierbar, möglicherweise ein Speicherleck vorhanden.

Wenn der Computer d. h. eine Einzel-Prozessorsystem.NET Framework-BizTalk Server ausgeführt wird verwendet die Workstation-Version des Ausführungsmoduls. Dies ist die Standardeinstellung Verhalten. Der Workstation Garbage Collector Allocation-Algorithmus ist nicht für die Skalierung oder für einen maximalen Durchsatz entwickelt wurde. Diese Garbage Collector verwendet gleichzeitige Garbage Collection-Methoden. Diese Methoden dienen zur Anwendungen, die komplexe Benutzeroberflächen haben. Solche Anwendungen müssen möglicherweise aggressive Garbagecollection.

Wichtig: Dieser Abschnitt, die Methode oder die Aufgabe enthält Schritte, die erklären, wie Sie die Windows-Registry ändern. Es können schwerwiegende Probleme auftreten, wenn Sie die Windows-Registry falsch ändern. Stellen Sie daher sicher, dass Sie die folgenden Schritte sorgfältig ausführen. Für zusätzlichen Schutz sichern Sie die Registrierung, bevor Sie Änderungen vornehmen. Gegebenenfalls können Sie dann die Registrierung wiederherstellen, wenn ein Problem auftritt. Für Weitere Informationen zum Sichern und Wiederherstellen der Registrierung, klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
322756 Sichern und Wiederherstellen der Registrierung in Windows
In manchen Fällen kann es angebracht, die Workstation-Version des Ausführungsmoduls auf einem Multiprozessorsystem ausgeführt sein. Den folgenden Registrierungsschlüssel können Sie auf der Workstation-Version des Ausführungsmoduls wechseln.

BizTalk 2006 und höhere Versionen

Erstellen Sie den folgenden Registrierungsschlüssel für die CRL hosten Zeichenfolge mit den entsprechenden Werten:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkHostName\CLR Hosting

Name: Typ
Daten: wks

BizTalk 2004

Erstellen Sie den folgenden Registrierungsschlüssel für die CRL hosten Zeichenfolge mit den entsprechenden Werten:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\BTSSvc {GUID} \CLR Host

Name: Typ
Daten: wks

Weitere Informationen finden Sie auf den folgenden Websites von Microsoft Developer Network (MSDN):
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

Häufige Ursachen und Lösungen

Prozess Speichernutzung und Belegung des physikalischen Speichers Drosselung Schwellenwerte

Die Speicherauslastung durch Prozesse und die Belegung des physikalischen Speichers Drosselung Schwellenwerte kann in BizTalk Server 2006 und späteren Versionen geändert werden.
  • Standardmäßig die Prozess Speichernutzung Drosselung Schwellenwert wird auf 25 festgelegt. Wenn dieser Wert überschritten, und die Auslastung des Speichers für BizTalk-Prozess mehr als 300 MB ist, kann eine Drosselung Bedingung auftreten. Auf einem 32-Bit-Server können Sie den Prozess Arbeitsspeicher Verwendungswert 50 erhöhen. Auf einem 64-Bit-Server können Sie diesen Wert auf 100 erhöhen. Dies ermöglicht weitere Speicherverbrauch durch den BizTalk-Prozess vor der Drosselung auftritt.
  • Die Belegung des physikalischen Speichers Drosselung Schwellenwert hat den Standardwert 0. Schwellenwert für gesamten Systemspeichers. Wenn ein anderer Wert als 0 konfiguriert ist, kann daher eine Drosselung Bedingung auftreten, wenn ein Prozess nicht BizTalk high Memory verwendet.
Weitere Informationen über die Drosselung Schwellenwerte finden Sie auf die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn.Microsoft.com/en-us/library/aa559628.aspx

Pausierung Drosselung Schwellenwerte

Die Standardschwellenwerte für Speicher Pausierung möglicherweise zu viel Pausierung Orchestrierungen unter einem 64-Bit-Host ausgeführt werden. Weitere Informationen zu diesem Problem finden Sie unter Pausierung Eigenschaften der Standard -Thema auf der folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn.Microsoft.com/en-us/library/aa560586.aspx
Hinweis 64-Bit-Hosts werden in BizTalk Server 2006 oder höher unterstützt.

Auf entsprechende Hardware in eine 32-Bit-Host-Instanz ist beobachteten Pausierung nominalen, wenn die gleichen Orchestrierungen mithilfe der Standard-Speicher Pausierung Drosselung Schwellenwerte ausgeführt werden.

Da 64-Bit-Architektur Expansionsspeicher-Adressraum (16 TB statt 4 GB) zur Verfügung stellt, werden 64-Bit-Hostinstanzen wesentlich mehr Speicher als 32-Bit-Hostinstanzen zugewiesen. Dies kann dazu führen, dass Drosselung Standardschwellenwerte für Speicher überschritten werden.

Um dieses Verhalten zu umgehen, ändern Sie die Werte VirtualMemoryThrottlingCriteria und PrivateMemoryThrottlingCriteria in der Datei BTSNTSvc64.exe.config. Verwenden Sie die Division von Prozess\Virtuelle Bytes und die Leistungsindikatoren des Systemmonitors Prozess\Private Bytes, die größte Menge an Arbeitsspeicher zu bestimmen, die eine Orchestrierungsinstanz belegt wird.
  • Legen Sie den OptimalUsage-Wert für beide anhand der folgenden Eigenschaften:
    VirtualMemoryThrottlingCriteria: \Process\Virtual Bytes Wert + 10 %
    PrivateMemoryThrottlingCriteria: \Process\Private Bytes Wert + 10 %
  • Legen Sie MaximalUsage für beide Eigenschaften der OptimalUsage-Wert + 30 %
Wenn \Process\Virtual Bytes-Systemmonitor Indikatorwert eine Orchestrierungsinstanz 5,784,787,695 Byte (5.517 MB) ist, legen Sie den OptimalUsage-Wert für VirtualMemoryThrottlingCriteria auf 6,069 MB (5,784,787,695 * 1.10 = 6,363,266,464.5 Byte). Legen Sie den MaximalUsage-Wert für VirtualMemoryThrottlingCriteria auf 7.889 MB (6,363,266,464.5 * 1,30 = 8,272,246,403.85 Byte).

Wenn \Process\Private Bytes-Systemmonitor Zählerwert 435689400 Byte (415 MB) ist, legen Sie den OptimalUsage-Wert für PrivateMemoryThrottlingCriteria auf 457 MB (435689400 * 1.10 = 479258340 Byte). Legen Sie den MaximalUsage-Wert für PrivateMemoryThrottlingCriteria bis 594 MB (1,30 * 479258340 = 623035842).

In diesem Beispiel würde die folgenden Werte in der Datei BTSNTSvc64.exe.config zur Verringerung der Beschränkung angegeben.
Tabelle minimierenTabelle vergrößern
Leistungsindikator-MonitorSpeicherOptimalUsageMaximalUsage
\Process\Virtual Bytes5784787695 Byte (5517 MB)60697889
\Process\Private Bytes435689400 Byte (415 MB)457594
Diese Werte würde dann wie folgt in der Datei BTSNTSvc64.exe.config dargestellt werden:
<xlangs>
      <Configuration>
                  <Dehydration>
                              <VirtualMemoryThrottlingCriteria OptimalUsage="6069" MaximalUsage="7889" IsActive="true" />
                              <PrivateMemoryThrottlingCriteria OptimalUsage="457" MaximalUsage="594" IsActive="true" />
                  </Dehydration>
      </Configuration>
</xlangs>
Um zu bestimmen, welche Hostinstanz die Orchestrierung ausgeführt wird, können Sie die Prozess-ID aus der \BizTalk:Messaging\ID Prozess und \Process\ID Prozess-Systemmonitor Leistungsindikatoren übereinstimmen. Überprüfen Sie dann den Durchschnittswert für die entsprechende \Process\Virtual Bytes und \Process\Private Bytes-Systemmonitor-Leistungsindikatoren angezeigt.

Hinweis Hohe Pausierung kann einen erheblichen Leistungsabfall führen, wenn die BizTalkMsgBoxDb-Datenbank auf SQL Server 2008 ausgeführt wird.

BizTalk Server Servicepacks und kumulativen Updates

BizTalk Server Servicepacks und kumulativen Updates enthalten die neuesten Updates. Dazu gehören diejenigen, die bekannten Probleme bei der System.OutOfMemoryException auswirken.

2281783 Liste von Service Pack und das kumulative Update für BizTalk Server 2006 R2

Microsoft BizTalk Server 2004 Service Pack 2

"HeapDeCommitFreeBlockThreshold"

Standardmäßig ist der Wert des Registrierungsschlüssels TheHeapDeCommitFreeBlockThreshold 0. Der Wert 0 bedeutet, dass den heap verfügt jede 4 Kilobyte (KB)-Seite, die zur Verfügung steht. Aufhebung Vorgänge können die Fragmentierung des virtuellen Speichers verursachen. Die Größe der Einstellung "HeapDeCommitFreeBlockThreshold" in der Heap-Manager, hängt die Art der Arbeit, das System tut. Eine Größe von 0 x 00040000 ist eine empfohlene starten Wert.

Beachten Sie die folgende Informationen, bevor Sie den Wert ändern von der
HeapDeCommitFreeBlockThreshold
Registrierung Schlüssel:
  • Diese Änderung gilt nur für die Fragmentierung des Speichers Probleme.
  • Diese Änderung ist systemweit. Aus diesem Grund werden die meisten Prozesse Verwenden Sie mehr Speicher beim Start.
  • Sollten Sie nur diese Änderung bei Systemen mit BizTalk Server als ihre primäre Aufgabe.
Zum Verringern der Fragmentierung des virtuellen Speichers können Sie erhöhen die Größe der Einstellung "HeapDeCommitFreeBlockThreshold" in der Heap-Manager durch Ändern des Wertes der folgende Registry-Schlüssel:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager


Wertname: "HeapDeCommitFreeBlockThreshold"
Werttyp: REG_DWORD
Wertdaten: 0 x 00040000 (Dies ist der empfohlene Startwert.)
Standardwert: nicht vorhanden
Weitere Informationen zum Registrierungsschlüssel HeapDeCommitFreeBlockThreshold finden Sie die folgende Artikelnummer klicken, um den Artikel der Microsoft Knowledge Base anzuzeigen:
315407Der Registrierungsschlüssel "HeapDecommitFreeBlockThreshold"

Transformationsvorgängen

Laden Sie die gesamte Nachricht im Speicher, wenn BizTalk Server XML-Transformation-Operationen für relativ große Nachrichten in einen Empfangsport in einen Sendeport führt oder in XLANG, XSL-Transformationen...

An Beheben Sie dieses Problem zu, verwenden Sie eine der folgenden Methoden:
  • Verringern der Anzahl der Nachrichten, dass BizTalk Server Prozesse zur gleichen Zeit.
  • Verringern Sie die Größe der XML-Nachricht, die transformiert.
Das System.Policy.Security.Evidence -Objekt wird am häufigsten in Transformationen und viel Speicher beanspruchen kann. Wenn eine Zuordnung ein Skripterstellungsfunktoids enthält, das Inline C# (oder jeder anderen Inlinesprache) verwendet, wird die Assembly im Speicher erstellt. Das System.Policy.Security.Evidence -Objekt verwendet das Objekt von der tatsächlichen aufrufenden Assembly. Dies erstellt ein Stamm-Objekt, das nicht gelöscht wird, bis der BizTalk-Dienst neu gestartet wird.

Die meisten Standard-BizTalk-Funktoide werden als Inlineskript implementiert. Diese Elemente können dazu führen, dass System.Byte [] Objekte im Speicher gesammelt werden sollen. Um Speicherverbrauch zu minimieren, empfehlen wir, dass Sie eine beliebige Karte ablegen, die diese Funktoide in einer kleinen Assembly verwendet. Klicken Sie dann auf verweisen Sie diese Assembly. Anhand der folgenden Tabelle bestimmen, welche Funktoide Inlineskript verwenden und welche Funktoide verwenden Skripts nicht.

In der zweiten Spalte bedeutet "Ja", dass dieses Funktoid als Inlineskript implementiert ist, verursacht es System.Byte [] Objekte im Speicher gesammelt werden sollen. "Nein" bedeutet, dass dieses Funktoid nicht als Inlineskript implementiert ist und es nicht bewirken, dass System.Byte [] Objekte im Speicher gesammelt werden sollen.
Tabelle minimierenTabelle vergrößern
FunktoideInlineskript?
Alle Zeichenfolgenfunktoiden"Ja"
Alle mathematischen Funktoide"Ja"
Alle logischen Funktoide, mit Ausnahme von IsNil"Ja"
Funktoid "logische IsNil"Nein
Alle Datum/Uhrzeit-Funktoide"Ja"
Alle Konvertierungsfunktoiden"Ja"
Alle wissenschaftlichen Funktoiden"Ja"
Alle kumulativen Funktoiden"Ja"
Alle Datenbank-FunktoideNein
Erweiterte FunktoideInlineskript?
Funktoid "Schleife"Nein
Wertezuordnung Funktoid "reduzieren"Nein
Assert FunktoidNein
Funktoid "Tabellen extrahieren"Nein
Funktoid "Tabellenschleife"Nein
Skripterstellungsfunktoid mit Inline C#"Ja"
Mit Inline-JScript.NET Funktoid "Skripterstellung""Ja"
Mit Inline-Visual Basic .NET Funktoid "Skripterstellung""Ja"
Mit Inline-XSLT Funktoid "Skripterstellung"Nein
Skripterstellungsfunktoid mit Inline-XSLT-AufrufvorlageNein
Externe Assembly aufrufen Funktoid "Skripterstellung"Nein
Nil FunktoidNein
Wertezuordnung FunktoidNein
Funktoid "Massenkopie"Nein
Funktoid "Iteration"Nein
Funktoid "Index"Nein
Funktoid "Datensatzanzahl"Nein
BizTalk Server 2006 und späteren Versionen erheblich verbessern Speicherverwaltung für große Dokumente. Zu diesem Zweck implementiert BizTalk Server eine konfigurierbare Meldung Schwellenwert für die Datenbankgröße für Dokumente in den Speicher geladen, während der Transformationsvorgänge. Der Standardschwellenwert für Nachricht Größe beträgt 1 MB. Weitere Informationen über die TransformThreshold-Einstellung finden Sie auf der folgende Microsoft Developer Network (MSDN)-Website:
http://msdn2.Microsoft.com/en-us/library/aa560481.aspx

Große Attributwerte und große Elementwerte

Wenn BizTalk Server ausgeführt wird und empfangen Pipeline oder eine Sendepipeline auf ein XML-Dokument wird in die Nutzlast verarbeitet. Speicher, wenn das Dokument eine oder mehrere der folgenden Elemente enthält:
  • Große Attributwerte
  • Große Elementwerte
  • Große Attribut oder Element-tags
Um dieses Problem zu beheben, beschränken Sie die Größe dieser Entitäten. Wenn diese Methode ist nicht möglich, stellen Sie sicher, dass Ihre BizTalk-Hostinstanz mehreren nicht verarbeitet Dokumente wie diese zur gleichen Zeit.

Benutzerdefinierte Pipelinekomponenten

Sie werden eine benutzerdefinierte Pipelinekomponente verwenden, die die gesamte lädt Stream in den Speicher. Alle Komponenten, die in BizTalk Server enthalten sind, mit Ausnahme von Transformationen Unterstützung für streaming. Diese Komponenten verwenden Sie nicht so viel Beim streaming Arbeitsspeicher. Allerdings können benutzerdefinierte Pipelinekomponenten nicht unterstützt Streaming.

Bei hoher Auslastung Streaming

Senden Sie, dass Hosts nicht genügend Arbeitsspeicher ausgeführt, wenn sie bei hoher Auslastung ausgeführt werden. BizTalk Server-Pipelines senden und streaming-Adapter unterstützt. In Streaming, jede Komponente wird ein kleines Fragment des Streams in den Speicher lädt. Da jede Nachricht andere Datenstrukturen, zusammen mit einer Nachricht enthält Kontext, der Groß oder klein sein kann, dieses Verhalten beeinflusst das Verhalten von BizTalk Server bei hoher Auslastung.

Das Verhalten von BizTalk Server ist betroffen. Da das Modul eine vorkonfigurierte Anzahl von Nachrichten wird geladen. Die Anzahl der Nachrichten, die das Modul geladen wird basierend auf den Werten, die in der Grenze-Feld und das HighWaterMark-Feld der Tabelle Adm_serviceClass. Die Adm_serviceClass-Tabelle ist in der BizTalk-Verwaltungsdatenbank. Diese Werte Steuern Sie die Anzahl der Nachrichten, die BizTalk Server verarbeitet oder sendet an der gleichzeitig.

HighWaterMark -Wert ist die Gesamtzahl der Nachrichten, die das Modul verarbeitet zur gleichen Zeit. Der Standardwert ist 200 Nachrichten pro CPU. Daher wird für ein 8-Prozessor-Server der Host senden versucht zum Verarbeiten von 1.600 Nachrichten (200 * 8) am gleichzeitig. Wenn Sie davon ausgehen, dass jede Nachricht 50 KB ist, gleich die Nachrichten 80 MB (1, 600 * 50 = 80 000KB).

Um dieses Problem zu beheben, können Sie den Wert HighWaterMark und der Grenze -Wert in der Datenbank ändern. Die Werte, mit denen Sie abhängig von der Größe der Nachrichten.

Weitere Informationen zu häufigen Ursachen für ein Out-of-Memory-Bedingung, finden Sie im Abschnitt "Speicher Wachstum im BizTalk-Messaging" auf der folgenden Microsoft-Website:
http://blogs.msdn.com/biztalkperformance
Für BizTalk Server 2006 und späteren Versionen können Sie den Standardhost ändern. Einstellungen der Bandbreiteneinschränkung. Weitere Informationen zum Ändern des Standard-Hosts Einstellungen der Bandbreiteneinschränkung finden Sie auf die folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn2.Microsoft.com/en-us/library/aa559628.aspx

Versuchen Sie, um das Problem zu vereinfachen.

Wenn Sie einen Speicherverlust identifiziert haben, versuchen Sie, die Ursache zu ermitteln durch Entfernen von benutzerdefinierte Komponenten oder durch die Vereinfachung der Karte. Versuchen Sie außerdem, zu reproduzieren das Problem mit einer einfachen Orchestrierung oder eine einfache Lösung. In der Regel, die Sie Erstellen Sie eigene sollten empfangen Hosts für Empfangsadapter. Sollten Sie auch Erstellen Sie separate senden Hosts für Sendeadapter. Bei Verwendung dieser Methode jedes Adapter kann in einem separaten Prozess ausgeführt. Daher, wenn auf Ihrem BizTalk Server-Prozess eine Out-of-Memory-Bedingung auftritt, werden Sie wissen Sie, welche Komponenten betroffen sind.

Schritte zur Problembehandlung

Um eine Out-of-Memory-Bedingung zu beheben, verwenden Sie das Debuggen Diagnose-Tool Speicherbelegungen über einen Zeitraum wiedergibt. Die Debug-Diagnose Tool zu erstellen und Analysieren eine Leck Speicherabbilddatei (.dmp). Wenn Sie Behebung von Speicherverlusten, Ziel ist es, vor der hohen Leaktrack.dll anhängen Arbeitsspeicher reproduziert Speicher Wachstum mit der Zeit zu erfassen. Leaktrack.dll ist das Debuggen Diagnose-Tool enthalten.
  1. Installieren Sie das Debug-Diagnose-Tool.

    Die folgende Datei steht im Microsoft Download Center als Download zur Verfügung:

    Bild minimierenBild vergrößern
    Download
    Downloaden Sie das Debuggen Diagnose-Tool-Paket jetzt.

    Weitere Informationen dazu, wie Sie Microsoft Support-Dateien herunterladen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
    119591 So erhalten Sie Microsoft Support-Dateien im Internet
    Microsoft hat diese Datei auf Viren überprüft. Microsoft verwendete die aktuellste Virenerkennungssoftware, die am Tag der Veröffentlichung der Datei zur Verfügung stand. Die Datei ist auf Servern mit erhöhter Sicherheit gespeichert, wodurch nicht autorisierte Änderungen an der Datei verhindert werden.
  2. Verwenden Sie den Systemmonitor zum Sammeln von Daten zum system Leistung. Diese Daten können wichtige Indikatoren über die Effizienz der vorsehen. der BizTalk Server-Umgebung. Ziel ist es, erfassen die Prozess-performance mit der Zeit. Aus diesem Grund aktivieren Sie Systemmonitor-Protokollierung vor Speicherlecks Tritt auf.

Gewusst wie: Verwenden Sie Systemmonitor-Protokollierung

Wählen Sie die Daten protokollieren
Um die Daten protokolliert auszuwählen, verwenden Sie die entsprechende Methode für Ihr Betriebssystem:
  • Für WindowsServer 2008 und Windows Server 2008 R2
    1. Öffnen Sie in Verwaltung Zuverlässigkeits- und Leistungsüberwachung.
    2. Mit der rechten Maustaste Systemmonitor, klicken Sie auf Neue , und klicken Sie dann auf Der Sammlungssatz.
    3. In der Name im Feld Geben Sie einen beschreibenden Namen ein und klicken Sie dann auf Weiter.
    4. Notieren Sie das Root-Verzeichnis, und klicken Sie dann auf Weiter.
    5. Klicken Sie auf Starten Sie dieser Sammlungssatz jetzt, und klicken Sie dann auf Fertig stellen.
    6. Erweitern Sie Von Sammlungssätzen, erweitern Sie Benutzerdefinierte und wählen Sie dann die Datei.
    7. Mit der rechten Maustaste Systemmonitorprotokoll, und klicken Sie dann auf Eigenschaften.
    8. Klicken Sie auf Hinzufügen auf der Leistungsindikatoren Registerkarte wählen Sie die folgenden Objekte, und klicken Sie dann auf Hinzufügen Nachdem Sie jedes Objekt auswählen:
      • .NET CLR-Ausnahmen
      • .NET CLR-Speicher
      • BizTalk: Messaging
      • BizTalk:TDDS
      • Speicher
      • Prozess
      • Prozessor
      • XLANG/s-Orchestrierungen
      Wenn SQL Server lokal ist, fügen Sie auch die folgenden Objekte:
      • SQLServer: Datenbanken
      • SQLServer: Allgemeine Statistik
      • SQLServer: Speicher-Manager
    9. Klicken Sie auf OK.
    10. Änderung der Intervallwert (Beispiel) Feld, um 5 Sekunden.

      Hinweis Der Wert für das Abtastintervall und die Zeit zum Starten der Überwachung sind subjektiv. Diese Werte hängen davon ab, wenn der Speicherverlust reproduziert wird. Da die Protokolldatei groß sein kann, geben Sie ein Intervall, in dem Sie die Informationen, die Sie benötigen abrufen können, ohne den Server überfordern.
    11. Klicken Sie auf OK.
    Zum Sammeln von Daten beenden, klicken Sie auf Beenden auf der Aktion Menü.
  • Für WindowsServer 2003 oder Windows XP
    1. Erweitern Sie Leistungsprotokolle und Warnungen.
    2. Mit der rechten Maustaste Leistungsindikatorenprotokolle, und klicken Sie dann Klicken Sie auf Neue Protokolleinstellungen. Die Neue ProtokolleinstellungenDas Dialogfeld wird angezeigt.
    3. In der Name eine Beschreibung ein Namen, und klicken Sie dann auf OK.
    4. Beachten Sie den Speicherort den Protokolldatei. (Sie können auch klicken die Log-Dateien Registerkarte, und klicken Sie dann auf Konfigurieren um Ändern Sie den Speicherort den Protokolldatei.)
    5. Klicken Sie auf Hinzufügen von Leistungsindikatoren.
    6. Wählen Sie Alle Leistungsindikatoren und Alle Instanzen.
    7. In der Leistungsobjekt Liste auswählen die folgenden Objekte. Klicken Sie auf Hinzufügen Nachdem Sie jedes Objekt auswählen.
      • .NET CLR-Ausnahmen
      • .NET CLR-Speicher
      • BizTalk: Messaging
      • BizTalk:TDDS
      • Speicher
      • Prozess
      • Prozessor
      • XLANG/s-Orchestrierungen
      Wenn SQL Server lokal ist, fügen Sie auch die folgenden Objekte:
      • SQLServer: Datenbanken
      • SQLServer: Allgemeine Statistik
      • SQLServer: Speicher-Manager
    8. Klicken Sie auf Schließen.
    9. Ändern Sie den Wert in Abtasten der Daten Intervall auf 5 Sekunden.

      Hinweis Der Wert Samplingintervall Daten und die Zeit zum Starten der Überwachung sind subjektiv. Diese Werte hängen davon ab, wenn der Speicherverlust reproduziert wird. Da die Protokolldatei groß sein kann, geben Sie ein Intervall, in dem Sie die Informationen, die Sie benötigen abrufen können, ohne den Server überfordern.
    10. Klicken Sie auf OK.
    Zum Sammeln von Daten beenden, mit der rechten Maustaste des Namens des Leistungsindikatorenprotokolls ein, und klicken Sie dann auf Beenden.
Die Abbilddatei zu erhalten
Um die Abbilddatei zu erhalten, verwenden Sie eine der folgenden Methoden:
  • Methode 1: automatische
    Erstellen einer Regel Speicher- und behandeln Leck mit DebugDiag ist die empfohlene Vorgehensweise, um ein Speicherabbild zu erfassen. Die Speicher- und behandeln Leck Regel fügt automatisch Leaktrack.dll. Dies dient zum Nachverfolgen von Speicherbelegungen. Gehen Sie folgendermaßen vor, um die Speicher- und behandeln Leck Regel zu erstellen:
    1. Debug starten Diagnose-Tool 1.1.
    2. Wählen Sie Speicher und Handle-Leck, und Klicken Sie dann auf Weiter.
    3. Wählen Sie die BTSNTSvc.exe Verarbeiten Sie, und klicken Sie dann auf Weiter.
    4. Gehen Sie auf der Seite Leck Regel konfigurieren folgendermaßen vor:
      1. Aktivieren Sie die Starten Sie Speicherüberprüfung sofort, wenn die Regel aktiviert ist das Kontrollkästchen. Andernfalls können Sie angeben, eine Aufwärmphase vor dem LeakTrack.dll im BTSNTSvc.exe-Prozess injiziert wird.
      2. Klicken Sie auf Konfigurieren, und gehen Sie folgendermaßen vor:
        • Überprüfen Sie, ob Absturz in der Regel automatisch erstellen ausgewählt ist. Sie diese Option auswählen, wird ein Speicherabbild automatisch erstellt werden, wenn der BTSNTSvc.exe wird beendet.
        • Aktivieren Sie die Generieren Sie ein Userdump, wenn virtuelle Bytes zu erreichen. Kontrollkästchen Sie das, und behalten Sie den Standardwert von 1024.
        • Aktivieren Sie die und jeder weitere Aktivieren Kontrollkästchen Sie, und übernehmen Sie den Standardnamen von 200.
        Erreichen Sie durch virtuelle Bytes auswählen die Option, ein Speicherabbild wird automatisch erstellt, wenn virtuelle Bytes 1024 MB verwendet. Wenn virtuelle Bytes erhöht, 200 MB, wird automatisch ein anderes Speicherabbild erstellt werden.
      3. Klicken Sie auf Speichern, & zu schließen.
      4. Klicken Sie auf Weiter.
    5. Klicken Sie auf der Seite Wählen Sie Dump Speicherort und Regelname Weiter.

      Hinweis Sie können auch den Pfad der Speicherabbilddatei im Ändern der Userdump Speicherort auf dieser Seite im Feld.
    6. Klicken Sie auf Fertig stellen um die Regel jetzt zu aktivieren.
    Hinweis Der Status einer Regel wird jetzt verfolgen. Jedes Mal, die ein Speicherabbild erstellt wird, erhöht der Wert in der Spalte Userdump Anzahl auf der Registerkarte Regeln. Der Speicher Dump Standardspeicherort ist c:\Programme\Microsoft Files\DebugDiag\Logs.
  • Methode 2: Manual
    Sie können auch manuell anhängen Leaktrack.dll und die Speicherabbilddatei manuell abgerufen werden können. Dies können Sie steuern, wenn das Speicherabbild erstellt wird. Gehen Sie hierzu folgendermaßen vor:
    1. Debug starten Diagnose-Tool 1.1.
    2. Klicken Sie auf die Prozesse Registerkarte.
    3. Mit der rechten Maustaste die BTSNTSvc.exe Verarbeiten Sie, und klicken Sie dann auf Monitor auf undichte Stellen.
    4. In der Debuggen Diagnose-Tool Dialogfeld auf "Ja", und klicken Sie dann auf OK.
    Erstellen einer Regel Absturz, um den gleichen Btsntsvc.exe zu überwachen, für den Fall, dass der Vorgang beendet, bevor Sie das Speicherabbild erstellen können:
    1. Starten Sie Debug-Diagnose-Tool 1.1.
    2. Wählen Sie Absturz, und klicken Sie dann auf Weiter.
    3. Wählen Sie Einen bestimmten Prozess, und klicken Sie dann auf Weiter.
    4. Wählen Sie den gleichen Btsntsvc.exe-Prozess, und klicken Sie dann auf Weiter.
    5. Auf der Erweiterte Konfiguration (Optional) Klicken Sie auf Weiter.
    6. In der Wählen Sie Dump Speicherort und Regelname (Optional) Klicken Sie im Dialogfeld klicken Sie auf Weiter.
    7. Wählen Sie Jetzt die Regel aktivieren, und klicken Sie dann auf Fertig stellen.
    Wenn der Prozess 60 bis 80 Prozent des RAM erreicht, mit der rechten Maustaste des Btsntsvc.exe-Prozess, und klicken Sie dann auf Vollständige Userdump erstellen. Wenn der BizTalk-Prozess beendet wird, bevor Sie das Abbild erstellen können, sollte die Crash-Regel wirksam und das Speicherabbild zu erstellen.
Systemmonitor-Protokollierung beenden
Wenn Sie ein Speicherabbild und Systemmonitor-Daten aufnehmen, beenden Sie Systemmonitor Protokollierung etwa zwei Minuten, nachdem das Speicherabbild erstellt wird.
Analysieren der Abbilddatei
Um die Ursache für einen Speicherverlust ermitteln, können Sie das Debuggen Diagnose-Tool zum Analysieren der Abbilddatei. Gehen Sie hierzu folgendermaßen vor:
  1. Klicken Sie auf die Erweiterte AnalysenRegisterkarte.
  2. Klicken Sie auf Hinzufügen von Datendateien, und suchen Sie die dmp-Datei.
  3. Wählen Sie die Druck SpeicheranalyseSkript, und klicken Sie dann auf Analyse starten.
Standardmäßig wird eine Analyseberichtsdatei (MHT) wird im Ordner "c:\Programme\Microsoft Files\DebugDiag\Reports" erstellt werden, wenn die Analyse abgeschlossen ist. Die Berichtsdatei wird auch in Ihrem Browser angezeigt. Die Berichtsdatei enthält die Ergebnisse der Analyse. Darüber hinaus kann die Berichtsdatei enthalten Empfehlungen für die Behebung von Speicherlecks.

Wenn Sie Benutzerdefiniert verwenden DLLs, können Sie benutzerdefinierte PDB-Dateien zur Analyse den Symbolpfad hinzufügen. Zu tun Hierzu gehen Sie folgendermaßen vor:
  1. Öffnen Sie das Debuggen Diagnose-Tool.
  2. Auf der Tools Menü, klicken Sie auf Optionen und Einstellungen.
  3. In der Symbolsuchpfad für das Debuggendas Feld, und geben Sie den Symbolpfad.
Wenn Sie Hilfe, die Analyse der Speicherabbilddatei benötigen, wenden Sie sich an Microsoft Customer Support Services. Eine vollständige Liste von Kunden-Support-Services Telefonnummern Sie und Informationen über Supportkosten, finden Sie hier: Microsoft-Website:
http://support.Microsoft.com/contactus/?WS=Support
Bevor Sie Microsoft Support Services wenden, komprimieren Sie die Speicherabbilddatei, des Systemmonitorprotokolls, die Analyseberichtsdatei und die aktualisierten Ereignisprotokolle (EVT-Dateien). Sie müssen möglicherweise diese Dateien in einer BizTalk Server-Techniker support senden.

Eigenschaften

Artikel-ID: 918643 - Geändert am: Donnerstag, 30. Mai 2013 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft BizTalk Server Branch 2010
  • Microsoft BizTalk Server Developer 2010
  • Microsoft BizTalk Server Enterprise 2010
  • Microsoft BizTalk Server Standard 2010
  • Microsoft BizTalk Server 2009 Branch
  • Microsoft BizTalk Server 2009 Developer
  • Microsoft BizTalk Server 2009 Enterprise
  • Microsoft BizTalk Server 2009 Standard
  • Microsoft BizTalk Server 2006 R2 Branch
  • Microsoft BizTalk Server 2006 R2 Developer Edition
  • Microsoft BizTalk Server 2006 R2 Enterprise Edition
  • Microsoft BizTalk Server 2006 R2 Standard Edition
  • Microsoft BizTalk Server 2006 Enterprise Edition
  • Microsoft BizTalk Server 2006 Developer Edition
  • Microsoft BizTalk Server 2006 Standard Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Standard Edition
Keywords: 
kbhowto kbmt KB918643 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 918643
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

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