Come risolvere i problemi di memoria o un'eccezione di memoria esaurita nel processo di BizTalk Server

Traduzione articoli Traduzione articoli
Identificativo articolo: 918643 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

Perdite di memoria sono un problema comune. Potrebbe essere necessario provare diverse operazioni per individuare la causa specifica di una perdita di memoria o di un'eccezione memoria esaurita (OOM) in Microsoft BizTalk Server. In questo articolo vengono descritti aspetti da considerare quando si sta valutando l'utilizzo della memoria e possibili problemi legati alla memoria. Tali considerazioni includono quanto segue:
  • Memoria RAM fisica
  • Elaborazione dei messaggi di grandi dimensioni
  • Utilizzare il /3GB Opzione
  • Utilizzo di componenti personalizzati
  • Quale versione di Microsoft.NET Framework, il sistema è in esecuzione
  • Il numero di processori

INTRODUZIONE

In questo articolo viene descritto come risolvere un problema di memoria o un'eccezione di memoria esaurita nel processo di BizTalk Server di Microsoft BizTalk Server.

Informazioni

Il processo di BizTalk Server potrebbe trattarsi di una perdita di memoria Quando l'utilizzo della memoria in Microsoft Windows Task Manager utilizza più di 50 percentuale della RAM fisica. Una perdita di memoria può causare un'eccezione di memoria esaurita Quando l'utilizzo della memoria aumenta fino a quando non viene eseguito il processo di memoria di sistema o fino a quando il processo si interrompe il funzionamento.

Quando si verifica questo problema, un messaggio di avviso analogo nel registro eventi viene registrato il seguente messaggio:

Evento Tipo: avviso
Categoria evento: (1)
ID evento: 5410
Descrizione: Errore che richiede il servizio di BizTalk per terminare. Le cause più comuni sono un imprevisto di errore di memoria e l'impossibilità di connettersi o una perdita di connettività a uno dei database BizTalk. Il servizio verrà arrestato e riavviato automaticamente tra 1 minuto. Se il database problematici resta disponibile, verrà ripetere questo ciclo.
Messaggio di errore: eccezione di tipo È stata generata un'eccezione OutOfMemoryException.
Origine errore:
Host BizTalk nome: BizTalkServerApplication
Nome del servizio di Windows: BTSSvc {DCC899FE-C62F-41BE-851A-8720B2EB9C14}

Tipo di evento: avviso
Categoria evento: (1)
ID evento: 5410
Descrizione: Errore che richiede il servizio di BizTalk per terminare. Le cause più comuni sono i seguenti: 1) imprevisto di errore di memoria insufficiente. O 2) l'impossibilità di connettersi o una perdita di connettività a uno dei database BizTalk. Il servizio verrà arrestato e riavviato automaticamente tra 1 minuto. Se il database problematici resta disponibile, verrà ripetere questo ciclo.
Messaggio di errore: eccezione di tipo '' OutOfMemoryException.
Origine dell'errore: mscorlib
Nome dell'host BizTalk: BizTalkServerApplication
Nome del servizio Windows: BTSSvc$ BizTalkServerApplication

Considerazioni importanti

Utilizzo di RAM e memoria fisica

Perché è un comportamento previsto di un processo per utilizzare circa la metà della RAM fisica, l'utilizzo della memoria come indicazione. Ad esempio, se il BizTalk Server è di 4 gigabyte (GB) di RAM e il processo di BizTalk Server utilizza circa 500 megabyte (MB) di RAM, potrebbe non esserci perdita. Se il processo di BizTalk Server utilizza circa 1 GB di RAM, è possibile una perdita di memoria o di una situazione di memoria alta. Il consumo di memoria può essere causato da una stored procedure a esecuzione prolungata o orchestrazione. Assicurarsi di conoscere la quantità di memoria dell'host BizTalk in genere utilizzato per determinare se si verifica una perdita di memoria o una condizione di memoria alta.

Messaggi di grandi dimensioni

Quando BizTalk Server elabora i messaggi di grandi dimensioni, il sistema sembra di avere una perdita di memoria. Tuttavia, i messaggi stia utilizzando una grande quantità di memoria. Per ulteriori informazioni sui messaggi di grandi dimensioni, visitare i seguenti siti Web Microsoft Developer Network (MSDN):
http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx

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

Tenere inoltre presente che utilizzo elevato della memoria potrebbe essere prevista se BizTalk Server è l'elaborazione di messaggi di grandi dimensioni. È possibile aggiornare l'hardware per soddisfare i requisiti di prestazioni di BizTalk Server nel proprio ambiente.

Tempo necessario per riprodurre la perdita di memoria

Perdite di memoria possono verificarsi immediatamente o che vengano accumulati su ora. Entrambi gli scenari sono comuni.

Utilizzo dell'opzione /3GB sui computer a 32 bit

In genere, un processo può accedere a 2 GB di spazio di indirizzi virtuali. L'opzione /3GB è un'opzione per i sistemi che richiedono più memoria indirizzabile. Questa opzione consente di migliorare l'utilizzo della memoria per l'elaborazione dei messaggi. Tuttavia, l'opzione /3GB consente solo 1 GB di memoria indirizzabile per le operazioni in modalità kernel. Inoltre, questa opzione può aumentare il rischio di esaurimento della memoria del pool.

Per ulteriori informazioni sui 3 GB , visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms791558.aspx
Quando l'opzione /3GB è attivata su una versione a 32 bit di Windows, il processo può accedere a 3 GB di indirizzi virtuali spazio se il processo è grande indirizzo a conoscenza. Indirizzi di grandi dimensioni è un processo a conoscenza quando il file eseguibile è impostato il flag IMAGE_FILE_LARGE_ADDRESS_AWARE nell'intestazione dell'immagine. Poiché il processo di BizTalk è grande indirizzo consapevoli, BizTalk trarranno vantaggio dallo switch di 3 GB.

Se un'istanza dell'host BizTalk a 32 bit è in esecuzione su una versione a 64 bit di Windows (AMD64), i vantaggi del processo BizTalk da 4 GB di memoria spazio di indirizzi perché BizTalk è un indirizzo di grandi dimensioni a conoscenza. Lo spostamento delle applicazioni di memoria alta in un server a 64 bit, pertanto, la soluzione migliore potrebbe essere.

Un processo di BizTalk a 64 bit su una versione a 64 bit di Windows (AMD64) dispone di 8 TB di memoria indirizzabile.

È inoltre consigliabile byte virtuali e i byte privati utilizzati dal processo. Un'istanza dell'host BizTalk (ovvero una.Applicazione di NET Framework) potrebbe essere visualizzato un errore di memoria insufficiente prima che il valore byte virtuali raggiungerà i 2 GB. Ciò può verificarsi anche se la quantità massima di memoria indirizzabile da un processo su una versione a 32 bit di Windows (senza l'opzione /3GB ) è di 2 GB. Per una spiegazione del motivo per cui questo problema può verificarsi, visitare i seguenti siti Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms972959.aspx
http://blogs.msdn.com/tess/archive/2005/11/25/496898.aspx
L'opzione /3GB aumenta anche il numero massimo di byte privato del processo BizTalk da 800 MB a 1800 MB. Per ulteriori informazioni su.Le prestazioni delle applicazioni di NET Framework con l'opzione /3GB attivato, visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms998583.aspx
Nella tabella seguente vengono riepilogate le informazioni e include i limiti pratici per byte virtuali e private.
Riduci questa tabellaEspandi questa tabella
ProcessoWindowsMemoria indirizzabile (con un processo compatibile con l'indirizzo di grandi dimensioni)Limite pratico di byte virtualiLimite pratico per byte privati
32-bit32-bit2 GB1400 MB800 MB
32-bit32 bit con 3 GB3 GB2400 MB1800 MB
32-bit64-bit4 GB3400 MB2800 MB
64-bit64-bit8 TBNon applicabileNon applicabile
Per ulteriori informazioni sulla memoria indirizzabile per 32 bit e 64 bit di Windows, visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa366778.aspx
Nella tabella seguente sono elencati supportabilità PAE e 3 GB per diverse versioni di BizTalk Server.
Riduci questa tabellaEspandi questa tabella
ProdottoPAE3 GB
BizTalk Server 2004No
BizTalk Server 2006
BizTalk Server 2006 R2
BizTalk Server 2009
Se è necessario attivare l'opzione /3GB soddisfare i requisiti di prestazioni di un computer che è esecuzione di BizTalk Server, è possibile considerare l'aggiunta di server per il gruppo BizTalk. Ciò consente di scalare le istanze di host intensivo della memoria.

Componenti di BizTalk è possibile che eseguiti all'interno di un processo di Internet Information Services (IIS) i vantaggi anche quando è attivata l'opzione /3GB .

L'opzione /3GB non è supportato nei computer che eseguono Windows SharePoint Services 2.0 o versioni successive o SharePoint Portal Server 2003 SP2 o versioni successive. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
933560L'opzione /3GB di Windows Server 2003 non è supportata in Windows SharePoint Services 2.0 o nelle versioni successive o in SharePoint Portal Server 2003 Service Pack 2 o versioni successive

Utilizzo di componenti personalizzati

Se si utilizzano componenti personalizzati, ad esempio tubazioni o ai componenti del servizio, è necessario conoscere cosa questi componenti. È inoltre necessario conoscere il potenziale effetto di questi componenti sull'utilizzo della memoria. A problema di memoria comune si verifica quando un componente sta trasformando un documento. Il operazione di trasformazione è un'operazione di molta memoria. Quando il documento è BizTalk Server trasformata, passa il flusso di messaggi di Microsoft.NET Classe XslTransform Framework all'interno del processo di BizTalk.

Un altro problema comune si verifica in presenza delle stringhe complesse. Stringa intensiva la modifica può consumare grandi quantità di memoria. Per ulteriori informazioni sulle modalità di migliorare le prestazioni, visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms998547

Versione di al.NET Framework

Microsoft.NET Framework 2.0 e il.NET Framework 1.1 hanno un comportamento diverso di memoria. Di conseguenza, si possono vedere risultati diversi tra loro. Se si utilizza il.NET Framework, verificare che la versione più aggiornata.NET Framework Service Pack 1 è installato. Questi service pack affrontare diversi problemi di memoria noto. Per ulteriori informazioni, fare clic sul numero dell'articolo riportato di seguito:

945757 Problemi risolti con il.NET Framework 2.0 Service Pack 1
867460 Elenco dei bug corretti nel.NET Framework 1.1 Service Pack 1

Numero di processori

Common language runtime (CLR) è la seguente procedura di garbage Raccoglitori (catalogo):
  • Workstation (mscorwks. dll)
  • Server (Mscorsvr. dll)
Se il computer che esegue BizTalk Server è un sistema multiprocessore il.NET Framework utilizza la versione Server del motore di esecuzione. Si tratta del comportamento predefinito. Il garbage collector di Server è progettato per la massima velocità di trasmissione. Inoltre, il garbage collector Server scalabile fino a fornire prestazioni particolarmente elevate. Il garbage collector alloca la memoria e in seguito si libererà memoria per offrire ottime prestazioni del sistema. Di conseguenza, un computer che esegue BizTalk Server con alcuni.NET Framework components sembra una perdita di memoria. Tuttavia, in questo scenario, utilizzo elevato della memoria è il comportamento previsto. Se il computer esegue esaurito la memoria di sistema o il processo smette di funzionare a causa di insufficiente memoria indirizzabile, potrebbe esistere una condizione di perdita di memoria.

Se il computer vale a dire l'esecuzione di BizTalk Server è un sistema con processore singolo, il.NET Framework utilizza la versione di Workstation del motore di esecuzione. Questa è l'impostazione predefinita comportamento. L'algoritmo di allocazione del garbage collector Workstation non è progettato per il ridimensionamento o per la massima velocità di trasmissione. Utilizza questa procedura di garbage collection metodi di concorrenti garbage collector. Questi metodi sono progettati per applicazioni che dispongono di interfacce utente complesse. Tali applicazioni possono richiedere più aggressiva garbage collection.

Importante Questa sezione, il metodo o attività contiene viene illustrato come modificare il Registro di sistema. Tuttavia, può causare seri problemi se si modifica il Registro di sistema in modo non corretto. Pertanto, assicurarsi di seguire attentamente i passaggi. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. Quindi, è possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e ripristinare il Registro di sistema, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
Articolo 322756 Come eseguire il backup e ripristinare il Registro di sistema in Windows
In alcuni casi, potrebbe essere appropriato eseguire la versione di Workstation del motore di esecuzione in un sistema multiprocessore. Per passare alla versione Workstation del motore di esecuzione, è possibile utilizzare la seguente chiave del Registro di sistema.

BizTalk 2006 e versioni successive

Creare la seguente chiave del Registro di sistema CRL Hosting stringa con valori corrispondenti:

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

Nome: caratteristica
Dati: wks

BizTalk 2004

Creare la seguente chiave del Registro di sistema CRL Hosting stringa con valori corrispondenti:

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

Nome: caratteristica
Dati: wks

Per ulteriori informazioni, visitare i seguenti siti Web 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

Cause comuni e risoluzioni

Utilizzo memoria del processo e le soglie di limitazione per l'utilizzo memoria fisica

L'Utilizzo memoria del processo e l' utilizzo della memoria fisica , la limitazione delle soglie possono essere modificati nel 2006 BizTalk Server e nelle versioni successive.
  • Per impostazione predefinita, il Utilizzo memoria del processo limitazione della soglia è impostata su 25. Se questo valore è superato e l'utilizzo di memoria del processo BizTalk è superiore a 300 MB, potrebbe verificarsi una condizione di limitazione. In un server a 32 bit, è possibile aumentare il valore di utilizzo della memoria processo a 50. In un server a 64 bit, è possibile aumentare questo valore su 100. In questo modo per il consumo di memoria più dal processo BizTalk prima che venga eseguita la limitazione.
  • Il Utilizzo della memoria fisica soglia limitazione ha un valore predefinito di 0. Questa soglia, le misure di memoria totale del sistema. Di conseguenza, se è configurato un valore diverso da 0, una limitazione della condizione può verificarsi se un processo BizTalk non utilizza memoria alta.
Per ulteriori informazioni sulla limitazione soglie, visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa559628.aspx

La limitazione delle soglie di disidratazione

Le soglie di disidratazione memoria predefinita potrebbero causare una quantità eccessiva disidratazione orchestrazioni vengono eseguite su un host a 64 bit. Per ulteriori informazioni, vedere l'argomento di Proprietà predefinite di disidratazione nel seguente sito Web Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa560586.aspx
Gli host a 64 bit di Nota sono supportati in BizTalk Server 2006 e versioni successive.

Su hardware equivalente in un'istanza di host a 32 bit, disidratazione osservato è nominale quando le orchestrazioni stesse vengono eseguite utilizzando la disidratazione di memoria predefinita la limitazione delle soglie.

Poiché l'architettura a 64 bit fornisce spazio di indirizzi di memoria espansa (16 TB invece di 4 GB), le istanze di host a 64 bit vengono allocate molta più memoria di istanze di host a 32 bit. Ciò può causare le soglie di limitazione della memoria predefinito devono essere superati.

Per aggirare il problema, modificare i valori VirtualMemoryThrottlingCriteria e PrivateMemoryThrottlingCriteria nel file BTSNTSvc64.exe.config. Utilizzare i byte di data e i contatori delle prestazioni di Process\Private byte per determinare la quantità maggiore di memoria allocata da un'istanza di orchestrazione.
  • Impostare il valore di OptimalUsage per entrambe le proprietà in base a quanto segue:
    VirtualMemoryThrottlingCriteria: valore di \Process\Virtual byte + 10 %
    PrivateMemoryThrottlingCriteria: valore di \Process\Private byte + 10 %
  • Set MaximalUsage per entrambe le proprietà per il valore di OptimalUsage + 30 %
Ad esempio, se il valore del contatore Byte Performance Monitor per un'istanza di orchestrazione \Process\Virtual 5,784,787,695 byte (5,517 MB), è possibile impostare il valore di OptimalUsage per VirtualMemoryThrottlingCriteria a 6,069 MB (5,784,787,695 * 1.10 = 6,363,266,464.5 byte). Impostare il valore di MaximalUsage per VirtualMemoryThrottlingCriteria a 7,889 MB (6,363,266,464.5 * 1,30 = 8,272,246,403.85 byte).

Se il valore del contatore Byte Performance Monitor \Process\Private 435689400 byte (415 MB), impostare il valore di OptimalUsage per PrivateMemoryThrottlingCriteria a 457 MB (435689400 * 1.10 = 479258340 byte). Impostare il valore di MaximalUsage per PrivateMemoryThrottlingCriteria a 594 MB (1,30 * 479258340 = 623035842).

In questo esempio i seguenti valori verrà specificati nel file BTSNTSvc64.exe.config per ridurre la limitazione.
Riduci questa tabellaEspandi questa tabella
Contatore di Performance MonitorMemoria allocataOptimalUsageMaximalUsage
\Process\Virtual byte5784787695 byte (5517 MB)60697889
\Process\Private byte435689400 byte (415 MB)457594
Questi valori dovrebbe quindi essere rappresentati nel file BTSNTSvc64.exe.config come segue:
<xlangs>
      <Configuration>
                  <Dehydration>
                              <VirtualMemoryThrottlingCriteria OptimalUsage="6069" MaximalUsage="7889" IsActive="true" />
                              <PrivateMemoryThrottlingCriteria OptimalUsage="457" MaximalUsage="594" IsActive="true" />
                  </Dehydration>
      </Configuration>
</xlangs>
Per determinare quale istanza di host è in esecuzione l'orchestrazione, è possibile abbinare il processo di ID dal processo di \BizTalk:Messaging\ID e \Process\ID i contatori di Performance Monitor di processo. Controllare il valore medio visualizzato per il corrispondente \Process\Virtual byte e i contatori di prestazioni byte \Process\Private.

Nota La disidratazione elevato può causare un notevole calo delle prestazioni quando è in esecuzione il database BizTalkMsgBoxDb SQL Server 2008.

BizTalk Server Service Pack e aggiornamenti cumulativi

BizTalk Server service pack e aggiornamenti cumulativi per includono le correzioni più recenti. Tra cui quelle che riguardano i problemi noti di OutOfMemoryException.

2281783 Elenco dei Service Pack e aggiornamento cumulativo per BizTalk Server 2006 R2

Microsoft BizTalk Server 2004 Service Pack 2

HeapDeCommitFreeBlockThreshold

Per impostazione predefinita, il valore della chiave del Registro di sistema theHeapDeCommitFreeBlockThreshold è 0. Il valore 0 indica che l'heap gestore libera ogni pagina di 4-kilobyte (KB) che diventa disponibile. Liberare le operazioni possono causare la frammentazione della memoria virtuale. Le dimensioni dell'impostazione HeapDeCommitFreeBlockThreshold il gestore degli heap variano a seconda del tipo di lavoro che il sistema sta effettuando. Una dimensione pari a 0x00040000 è una barra di avvio consigliata valore.

Prendere in considerazione le seguenti informazioni prima di modificare il valore del
HeapDeCommitFreeBlockThreshold
Registro di sistema chiave:
  • Questa modifica si applica solo alla frammentazione della memoria problemi.
  • Questa modifica è a livello di sistema. Di conseguenza, la maggior parte dei processi verrà utilizzare più memoria all'avvio.
  • Prendere in considerazione solo la modifica per i sistemi che dispongono di BizTalk Server come loro missione principale.
Per ridurre la frammentazione della memoria virtuale, è possibile aumentare le dimensioni dell'impostazione HeapDeCommitFreeBlockThreshold il gestore degli heap modificando il valore di seguente chiave del Registro di sistema:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager


Nome valore: HeapDeCommitFreeBlockThreshold
Tipo di valore: REG_DWORD
Dati valore: 0x00040000 (questo è il valore di partenza consigliato).
Valore predefinito: non presente
Per ulteriori informazioni sulla chiave del Registro di sistema HeapDeCommitFreeBlockThreshold, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
315407La chiave del Registro di sistema "HeapDecommitFreeBlockThreshold"

Le operazioni di trasformazione

Quando BizTalk Server consente di eseguire le operazioni di trasformazione XML nei messaggi piuttosto grande in una porta di ricezione di una porta di trasmissione o in XLANG, le trasformazioni XSL caricare l'intero messaggio in memoria..

Per risolvere il problema, utilizzare uno dei seguenti metodi:
  • Ridurre il numero di messaggi che BizTalk Server processi contemporaneamente.
  • Ridurre la dimensione del messaggio XML che è in corso trasformato.
L'oggetto System.Policy.Security.Evidence viene spesso utilizzata con le trasformazioni e può consumare quantità di memoria. Quando una mappa contiene functoid di script che utilizza c# inline (o qualsiasi altro linguaggio inline), viene creato l'assembly in memoria. L'oggetto System.Policy.Security.Evidence utilizza l'oggetto dell'assembly chiamante effettivo. Questa situazione crea un oggetto contenente una radice che non viene eliminato fino a quando non viene riavviato il servizio di BizTalk.

La maggior parte dei functoid di BizTalk predefinito vengono implementata come script inline. Questi elementi possono causare System. Byte [] oggetti per la raccolta in memoria. Per ridurre il consumo di memoria, si consiglia di inserire qualsiasi mappa che utilizza questi modelli di trasformazione in un assembly di piccole dimensioni. Quindi, fare riferimento a tale assembly. Utilizzare il grafico riportato di seguito per determinare quali functoid utilizzare script inline e i modelli di trasformazione non utilizzare script inline.

Nella seconda colonna, "Sì" significa che questo functoid viene implementato come script inline e ciò comporterà System. Byte [] oggetti per la raccolta in memoria. "No" significa che questo functoid non è implementato come script inline e che non comportano gli oggetti di System. Byte [] per la raccolta in memoria.
Riduci questa tabellaEspandi questa tabella
Modelli di trasformazioneScript inline?
Tutti i functoid di stringa
Tutti i functoid matematici
Tutti i functoid logici, ad eccezione di IsNil
Functoid logici di IsNilNo
Tutti i functoid di data/ora
Tutti i modelli di trasformazione di conversione
Tutti i functoid scientifici
Tutti i functoid cumulativi
Tutti i functoid di DatabaseNo
Functoid avanzatiScript inline?
Functoid cicloNo
Mapping di valori Functoid di conversione della trasparenzaNo
Asserzione FunctoidNo
Functoid estrazione da tabellaNo
Functoid Ciclo tabelleNo
Functoid di script con c# Inline
Functoid di script con Inline JScript.NET
Functoid di script con Visual Basic in linea.NET
Functoid di script con XSLT InlineNo
Functoid di script con modello chiamata Inline XSLTNo
Functoid di script chiamata Assembly esternoNo
Functoid valore nilNo
Functoid Mapping di valoreNo
Functoid copia di massaNo
Functoid iterazioneNo
Functoid indiceNo
Functoid Conteggio recordNo
BizTalk Server 2006 e versioni successive migliorano notevolmente la gestione della memoria per documenti di grandi dimensioni. A tale scopo, BizTalk Server implementa un messaggio configurabile soglia di dimensioni per il caricamento di documenti in memoria durante le operazioni di trasformazione. La soglia di dimensioni del messaggio predefinito è 1 MB. Per ulteriori informazioni sull'impostazione di TransformThreshold, visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa560481.aspx

I valori degli attributi di grandi dimensioni e i valori di elementi di grandi dimensioni

Quando BizTalk Server viene eseguita un'operazione di ricezione elaborazione della pipeline o una pipeline di trasmissione su un documento XML, il payload in memoria se il documento contiene uno o più delle seguenti entità:
  • Valori degli attributi di grandi dimensioni
  • Valori di elementi di grandi dimensioni
  • Tag di attributo o elemento di grandi dimensioni
Per risolvere questo problema, limitare la dimensione di queste entità. Se questo metodo non è possibile, assicurarsi che l'istanza dell'HOST BizTalk non elabora più documenti come questi nello stesso momento.

Componenti della pipeline personalizzato

Utilizzo di un componente della pipeline personalizzato che viene caricata l'intera flusso in memoria. Tutti i componenti inclusi in BizTalk Server, ad eccezione di trasformazioni, supporta i flussi. Questi componenti non utilizzano la maggior parte memoria durante lo streaming. Tuttavia, potrebbero non supportare i componenti della pipeline personalizzato i flussi.

In caso di sovraccarico di flusso

Inviare gli host esaurito la memoria quando operano in caso di sovraccarico. BizTalk Server pipeline di trasmissione e inviare il flusso di supporto di schede di rete. In lo streaming, ciascun componente carica un piccolo frammento del flusso in memoria. Poiché ogni messaggio include altre strutture di dati, insieme a un messaggio contesto può essere grande o piccola, questo comportamento influisce sul comportamento di BizTalk Server in caso di sovraccarico.

Il comportamento di BizTalk Server è interessato Poiché il motore viene caricato un numero di messaggi preconfigurato. Il numero di i messaggi che carica il motore è basata sui valori che vengono visualizzati nel LowWaterMark HighWaterMark campi e della tabella Adm_serviceClass. La tabella di Adm_serviceClass è nel Database di gestione BizTalk. Questi valori Controllare il numero di messaggi BizTalk Server elabora o inviare con il stesso tempo.

Il valore di HighWaterMark è il numero totale di messaggi che elabora il motore allo stesso tempo. Il valore predefinito è 200 messaggi per ogni CPU. Di conseguenza, in un server con 8 processori, l'host invia tenterà di elaborare 1.600 messaggi (200 * 8) a al tempo stesso. Se si presuppone che ogni messaggio è pari a 50 KB, i messaggi uguale a 80 MB (1, 600 * 50 = 80 000 KB).

Per risolvere questo problema, è possibile modificare il valore di HighWaterMark e il valore di LowWaterMark nel database. I valori che è possibile utilizzare dipendano dalle dimensioni i messaggi.

Per ulteriori informazioni sulle cause più comuni di un memoria esaurita condizione, vedere la sezione "Memoria crescita in BizTalk Messaging" nel seguente sito Web Microsoft:
http://blogs.msdn.com/biztalkperformance
Per BizTalk Server 2006 e versioni successive, è possibile modificare l'host predefinito impostazioni di limitazione. Per ulteriori informazioni su come modificare l'host predefinito le impostazioni di limitazione, visitare il seguente sito Web Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa559628.aspx

Per semplificare il problema

Se è stato identificato un problema di memoria, provare a determinare la causa rimuovendo i componenti personalizzati o semplificando una mappa. Inoltre, provare a riprodurre il problema utilizzando una semplice orchestrazione o una soluzione semplice. In genere, si deve creare separato ricevere gli host per gli adapter di ricezione. È inoltre necessario creare gli host di invio distinti per l'adapter di trasmissione. Quando si utilizza questo metodo, ogni adattatore può eseguire in un processo separato. Pertanto, se il processo di BizTalk Server si verifica una condizione di memoria insufficiente, sarà sapere quali componenti sono coinvolti.

Risoluzione dei problemi

Per risolvere una condizione di memoria insufficiente, utilizzare il Debug Strumento di diagnostica per monitorare le allocazioni di memoria nel tempo. La diagnostica di Debug lo strumento è possibile creare e analizzare un file di immagine della perdita di memoria (dmp). Quando si risoluzione dei problemi di memoria, l'obiettivo consiste nel collegare Leaktrack.dll prima di alta Riprende la condizione di memoria per l'acquisizione di crescita di memoria nel tempo. LeakTrack.dll viene fornito con lo strumento Diagnostica di Debug.
  1. Installare lo strumento di diagnostica di Debug.

    Il seguente file è disponibile per il download dall'area Download Microsoft:

    Riduci l'immagineEspandi l'immagine
    Download
    Download del pacchetto dello strumento di diagnostica di Debug.

    Per ulteriori informazioni su come scaricare i file di supporto Microsoft, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:
    119591 Come ottenere file di supporto Microsoft dai servizi in linea
    Microsoft analizzati in questo file per individuare eventuali virus. Microsoft ha utilizzato il software antivirus più recente che era disponibile alla data in cui il file è stato registrato. Il file viene memorizzato nei server con protezione avanzata che consentono di impedire modifiche non autorizzate per il file.
  2. Utilizzare Performance Monitor per raccogliere dati sul sistema prestazioni. Questi dati possono fornire importanti indicatori di efficienza di l'ambiente di BizTalk Server. L'obiettivo è di acquisire le prestazioni dei processi nel tempo. Di conseguenza, attivare la registrazione di Performance Monitor prima la perdita di memoria si verifica.

Come utilizzare la registrazione di Performance Monitor

Selezionare i dati per l'accesso
Per selezionare i dati per accedere, utilizzare il metodo appropriato per il sistema operativo:
  • Per Windows Server 2008 e Windows Server 2008 R2
    1. In strumenti di amministrazione aprire Affidabilità e Monitoraggio prestazioni.
    2. Pulsante destro del mouse Performance Monitor, fare clic su Nuovo e quindi fare clic su Insieme agenti di raccolta dati.
    3. Nel Nome Digitare un nome descrittivo, quindi fare clic su Avanti.
    4. Prendere nota della directory principale e quindi fare clic su Avanti.
    5. Fare clic su Avviare questo insieme agenti di raccolta dati, quindi fare clic su Fine.
    6. Espandere Agenti di raccolta dati, espandere Definito dall'utente e quindi selezionare il file.
    7. Pulsante destro del mouse Registro di Monitor di sistema, quindi fare clic su Proprietà.
    8. Fare clic su Aggiungere nel Contatori delle prestazioni scheda selezionare i seguenti oggetti e quindi fare clic su Aggiungere Dopo la selezione di ogni oggetto:
      • .Eccezioni CLR NET
      • .NET memoria CLR
      • BizTalk: messaggistica
      • BizTalk: TDDS
      • Memoria
      • Processo
      • Processore
      • Orchestrazioni XLANG/s
      Se SQL Server è locale, è necessario aggiungere anche i seguenti oggetti:
      • Databatase
      • SQLServer: statistiche generali
      • SQLServer: gestione
    9. Fare clic su OK.
    10. Modifica il Valore di intervallo di campionamento casella a 5 secondi.

      Nota Il valore di intervallo di campionamento e l'ora di inizio per il monitoraggio sono soggettive. Questi valori dipendono quando viene riprodotta la perdita di memoria. Poiché il file di registro può essere elevato, è necessario specificare un intervallo in cui è possibile ottenere le informazioni che è necessario disporre di senza sovraccaricare il server.
    11. Fare clic su OK.
    Per interrompere la raccolta dei dati, fare clic su Stop nel Azione dal menu.
  • Per Windows Server 2003 o Windows XP
    1. Espandere Registri di prestazioni e Avvisi.
    2. Pulsante destro del mouse Registri contatori, quindi Fare clic su Nuove impostazioni registro. Il Nuove impostazioni registroviene visualizzata la finestra di dialogo.
    3. Nel Nome Digitare un testo descrittivo nome e quindi fare clic su OK.
    4. Si noti la posizione del file di registro. (È anche possibile scegliere di File di registro scheda e quindi fare clic su Configurare Per modificare il percorso del file registro).
    5. Fare clic su Aggiungere contatori.
    6. Selezionare Tutti i contatori e Tutti i istanze.
    7. Nel Oggetto delle prestazioni elenco, selezionare i seguenti oggetti. Fare clic su Aggiungere Dopo la selezione di ogni oggetto.
      • .Eccezioni CLR NET
      • .NET memoria CLR
      • BizTalk: messaggistica
      • BizTalk: TDDS
      • Memoria
      • Processo
      • Processore
      • Orchestrazioni XLANG/s
      Se SQL Server è locale, è necessario aggiungere anche i seguenti oggetti:
      • Databatase
      • SQLServer: statistiche generali
      • SQLServer: gestione
    8. Fare clic su Chiudere.
    9. Modificare il valore di Campionamento dei dati Intervallo per 5 secondi.

      Nota Il valore dell'intervallo di campionamento dei dati e l'ora di inizio per il monitoraggio sono soggettive. Questi valori dipendono quando viene riprodotta la perdita di memoria. Poiché il file di registro può essere elevato, è necessario specificare un intervallo in cui è possibile ottenere le informazioni che è necessario disporre di senza sovraccaricare il server.
    10. Fare clic su OK.
    Per interrompere la raccolta dei dati, il pulsante destro del nome del registro contatore e quindi fare clic su Stop.
Ottenere il file dump
Per ottenere il file dump, utilizzare uno dei seguenti metodi:
  • Metodo 1: automatico
    Creazione di una regola di memoria e la perdita di Handle con DebugDiag è l'approccio consigliato per l'acquisizione di un'immagine della memoria. La regola di memoria e la perdita di Handle associa automaticamente Leaktrack.dll. Viene utilizzato per tenere traccia delle allocazioni di memoria. Per creare la regola di memoria e la perdita di Handle, attenersi alla seguente procedura:
    1. Avvia Debug Strumento di diagnostica 1.1.
    2. Selezionare Memoria e una perdita di Handle, e quindi fare clic su Avanti.
    3. Selezionare il BTSNtSvc. exe elaborare e quindi fare clic su Avanti.
    4. Nella pagina configurazione regola perdita attenersi alla seguente procedura:
      1. Fare clic per selezionare il Avviare Gestione immediatamente quando viene attivata la regola di memoria casella di controllo. In caso contrario, è possibile specificare un tempo di riscaldamento prima di LeakTrack.dll è inserito nel processo di BTSNtSvc. exe.
      2. Fare clic su Configurare, e quindi eseguire le operazioni seguenti:
        • Verificare che Crea automaticamente una regola di arresto anomalo del sistema è selezionata. Selezionando questa opzione, un'immagine della memoria verrà creato automaticamente se si interrompe il processo BTSNtSvc. exe.
        • Fare clic per selezionare il Generare un userdump quando raggiungono il byte virtuali la casella di controllo e mantenere il valore predefinito di 1024.
        • Fare clic per selezionare il e ogni ulteriore la casella di controllo e mantenere il valore predefinito è 200.
        Selezionando i byte virtuali raggiungono l'opzione, un'immagine della memoria viene creata automaticamente quando i byte virtuali utilizza 1024 MB. Se il byte virtuali aumenta di 200 MB, verrà creata automaticamente un'altra immagine della memoria.
      3. Fare clic su Salva & Chiudi.
      4. Fare clic su Avanti.
    5. Nella pagina selezionare Dump percorso e nome della regola, fare clic su Avanti.

      Nota È inoltre possibile modificare il percorso del file dump nel Relativo alla posizione casella in questa pagina.
    6. Fare clic su Fine Per rendere attiva la regola adesso.
    Nota Lo stato della regola tiene traccia. Ogni volta che viene creata un'immagine della memoria, aumenta il valore nella colonna conteggio Userdump nella scheda regole. Il percorso di immagine della memoria predefinito è c:\Programmi\Microsoft Files\DebugDiag\Logs.
  • Metodo 2: manuale
    È possibile collegare manualmente anche Leaktrack.dll e ottenere manualmente il file di immagine della memoria. Ciò consente al controllo quando viene creato il dump della memoria. A tale scopo, attenersi alla seguente procedura:
    1. Avvia Debug Strumento di diagnostica 1.1.
    2. Scegliere il Processi scheda.
    3. Pulsante destro del mouse il BTSNtSvc. exe elaborare e quindi fare clic su Monitoraggio delle perdite di.
    4. Nel Strumento di diagnostica di debug finestra di dialogo Fare clic su , quindi fare clic su OK.
    Creare una regola di arresto anomalo del sistema per monitorare lo stesso processo BTSNtSvc. exe nel caso in cui il processo si interrompe prima di creare il dump della memoria:
    1. Start Strumento di diagnostica di Debug 1.1.
    2. Selezionare Arresto anomalo del sistema, quindi fare clic su Avanti.
    3. Selezionare Un processo specifico, quindi fare clic su Avanti.
    4. Selezionare lo stesso processo BTSNtSvc. exe e quindi fare clic su Avanti.
    5. Nel Configurazione avanzata (facoltativa) Fare clic Avanti.
    6. Nel Selezionare la posizione dell'immagine e il nome della regola (facoltativo) Nella finestra di dialogo, fare clic su Avanti.
    7. Selezionare Attivare la regola adesso, quindi fare clic su Fine.
    Quando il processo raggiunge il 60% a 80% della RAM, il pulsante destro del processo BTSNtSvc. exe e quindi fare clic su Creare Userdump completo. Se il processo di BizTalk si interrompe prima di creare il dump utente, la regola di arresto anomalo del sistema dovrebbe effettive e creare l'immagine della memoria.
Interrompere la registrazione di Performance Monitor
Quando si acquisiscono un dump della memoria e i dati di Performance Monitor, interrompere la registrazione di Performance Monitor circa due minuti dopo aver creato il dump della memoria.
Analizzare il file dump
Per individuare la causa di una perdita di memoria, è possibile utilizzare il Debug Strumento di diagnostica per analizzare il file dump. A tale scopo, attenersi alla seguente procedura:
  1. Scegliere il Analisi avanzatascheda.
  2. Fare clic su Aggiungere i file di dati, quindi individuare il file dmp.
  3. Selezionare il Analisi pressione della memoriascript e quindi fare clic su Avvia analisi.
Per impostazione predefinita, un file di report di analisi (. mht) verrà creato nella cartella C:\Program Files\DebugDiag\Reports al termine dell'analisi. Il file di report verrà inoltre visualizzato nel browser. Il file di report contiene i risultati dell'analisi. Inoltre, può contenere il file di report consigli su come risolvere i problemi di memoria.

Se si utilizza custom DLL, è possibile aggiungere il percorso dei file PDB personalizzato per l'analisi dei simboli. Per eseguire In questo caso, attenersi alla seguente procedura:
  1. Aprire lo strumento di diagnostica di Debug.
  2. Nel Strumenti menu, fare clic su Opzioni e le impostazioni.
  3. Nel Percorso di ricerca di simboli per il debugdigitare il percorso di simboli.
Se si desidera assistenza per l'analisi del file di dettagli, contattare Microsoft Servizio supporto tecnico clienti. Per un elenco completo dei servizi di assistenza clienti informazioni sui costi dell'assistenza e numeri telefonici, visitare il seguente Sito Web Microsoft:
http://support.microsoft.com/contactus/?ws=support
Prima di contattare il servizio supporto tecnico clienti, comprimere il file dump, il Registro di Performance Monitor, il file di report di analisi e i registri eventi aggiornati (file con estensione evt). Potrebbe essere necessario inviare che questi file per un BizTalk Server supportano tecnico.

Proprietà

Identificativo articolo: 918643 - Ultima modifica: mercoledì 13 giugno 2012 - Revisione: 2.0
Le informazioni in questo articolo si applicano a:
  • 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
Chiavi: 
kbhowto kbmt KB918643 KbMtit
Traduzione automatica articoli
Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 918643
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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