Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Sintomi

Si utilizza la replica di Merge di SQL Server 2005 o SQL Server 2008 replica di tipo Merge con una sincronizzazione Web basati su server di sottoscrizione. Si verifica una perdita di memoria dopo ripetute sincronizzazioni e possono verificarsi errori di "memoria insufficiente" dopo un periodo di tempo. Questo diventa evidente quando non viene riavviato il processo host per lungo tempo, come quando l'agente di Merge (Replmerg.exe) viene utilizzato con l'opzione - opzione continua o quando viene specificato il parametro continuo nel profilo dell'agente che viene applicato all'agente. Questo problema può influenzare anche RMO applicazione o un servizio che è stato sviluppato che esegue la sincronizzazione in un ciclo quando l'applicazione viene eseguita per diversi giorni senza uscire dalla finestra.

Causa

Diversi oggetti interni sono perso durante ogni sincronizzazione.

Risoluzione

SQL Server 2005 Service Pack 3


La correzione di questo problema è stata rilasciata prima 6 aggiornamento cumulativo per SQL Server 2005 Service Pack 3. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

974648 cumulativo aggiornamento 6 per SQL Server 2005 Service Pack 3Nota: Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con la versione precedente di SQL Server 2005. Microsoft consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

960598 di SQL Server 2005 versioni rilasciate dopo il rilascio di SQL Server 2005 Service Pack 3.
Aggiornamenti rapidi di Microsoft SQL Server 2005 vengono creati per service pack specifici di SQL Server. È necessario applicare un hotfix di SQL Server 2005 Service Pack 3 per un'installazione di SQL Server 2005 Service Pack 3. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel prossimo service pack di SQL Server.

La versione di SQL Server 2008

Importante Se si esegue la versione di SQL Server 2008, è necessario installare questa correzione.

La correzione di questo problema è stata rilasciata prima 8 aggiornamento cumulativo. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2008, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

975976 cumulativo aggiornamento 8 per SQL Server 2008Nota: Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 di SQL Server. Si consiglia di considerare l'ipotesi di applicare la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

956909 versioni di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008

SQL Server 2008 Service Pack 1

Importante Se si esegue SQL Server 2008 Service Pack 1, è necessario installare questa correzione.


La correzione di questo problema è stata rilasciata prima 5 di aggiornamento cumulativo per SQL Server 2008 Service Pack 1. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

975977 cumulativo 5 pacchetto di aggiornamento per SQL Server 2008 Service Pack 1Nota: Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 di SQL Server. Microsoft consiglia di considerare l'applicazione alla versione più recente di correzione contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

970365 versioni di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1
Aggiornamenti rapidi di Microsoft SQL Server 2008 vengono creati per service pack specifici di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 1 a un'installazione di SQL Server 2008 Service Pack 1. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel prossimo service pack di SQL Server.

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Soluzione alternativa

Per risolvere questo problema, utilizzare uno dei seguenti metodi:

Metodo 1

Se si utilizza un agente di merge in modalità continua, interrompere il processo dell'agente di merge periodicamente e avviarla nuovamente.

Ad esempio, vengono visualizzati errori di "memoria insufficiente" dopo cinque giorni e l'agente di Merge è programmata come processo. Quindi, si pianifica un nuovo processo di agente SQL Server per chiamare sp_stop_job seguita da sp_start_job specificando il nome del processo dell'agente di Merge, che passa il processo interessato ogni cinque giorni. Quando si interrompe il processo dell'agente di Merge (Replmerg.exe), qualsiasi perdita di memoria all'interno dello spazio di memoria del processo verrà rilasciata.

Per ulteriori informazioni sull'utilizzo dell'opzione-continua nell'agente di Merge, vedere il seguente sito Web Microsoft Developer Network (MSDN):

http://msdn.microsoft.com/en-us/library/ms147839.aspx

sp_stop_job http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx

sp_start_job http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx

Metodo 2

Se si utilizza l'agente di Merge da un processo, è possibile configurare la logica di loop manuale all'interno del processo mediante operazioni aggiuntive anziché basarsi sul parametro di continuo. Anziché il processo dell'agente di merge di un ciclo internamente continuo continuamente, pianificare l'agente di Merge come passaggio di processo che si ripete regolarmente, ad esempio una volta al minuto. Il processo terminerà tra tentativi e in questo modo qualsiasi perdita di memoria.
Modificare il processo in modo da ripetere i passaggi in un ciclo con una pausa tra ripete l'agente di Merge.

  1. Dopo il passaggio [3] "Chiusura agenti senza registrazione, rilevare" aggiungere un nuovo passaggio [4] denominata "Indefinito Riprova Loop". Impostare il tipo di TSQL e il comando "waitfor delay" 0: 00:05'", questo ritardo TSQL fornirà una pausa secondo 5 che è possibile configurare come un intervallo di polling in modo che l'agente di merge verrà brevemente le pause tra le esecuzioni e non eseguire costantemente. Nella scheda Avanzate specificare "Sul successo azione" come "Andare al passaggio dell'agente di esecuzione [2]" e "Sulle azioni di errore" come "Go to agente Esegui passaggio [2]".

  2. Modifica passaggio [2] Esegui agente affinché che venga raggiunto il ciclo di passaggio [4]. Nella scheda Avanzate del passaggio [2], impostare l'azione di successo su "Vai al passaggio: [4] ciclo Riprova indefinito" e impostare l'azione di errore via da "Vai al passaggio successivo".

  3. Modifica passaggio [3] "Chiusura agenti senza registrazione rileva" per assicurarsi che il ciclo di passaggio [4] è raggiunto. Nella scheda Avanzate del passaggio [3], impostarla su esito positivo, "Vai al passaggio successivo". È inoltre possibile decidere se si desidera che il passaggio [3] Errore azione deve essere impostato come "Vai alla sezione successiva" o "Quit il processo completato con errori". Se è configurato per uscire, l'errore del processo verranno visualizzati nei Monitor replica e il processo. Se è configurato in caso di errore per passare al quarto passaggio di ciclo, l'agente di merge può eseguire di nuovo all'infinito e gli errori registrati in modo indefinito.

Metodo 3

Analogamente se si utilizza un'applicazione di RMO di chiamare il metodo MergeSynchronizationAgent.Synchronize() che sincronizza il database di sottoscrizione in un ciclo, arrestare e riavviare il processo periodicamente per liberare qualsiasi memoria che viene perso a causa di questo problema.
Per ulteriori informazioni su questo oggetto e un metodo, vedere il seguente sito Web Microsoft Developer Network (MSDN): http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx

Riferimenti

Per ulteriori informazioni sulle modalità di utilizzo-switch continuo nell'agente di Merge, visitare il seguente sito Web Microsoft Developer Network (MSDN):

http://msdn.microsoft.com/en-us/library/ms147839.aspx
Per ulteriori informazioni sulla stored procedure sp_stop_job memorizzati, visitare il seguente sito Web Microsoft Developer Network (MSDN):

http://http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx
Per ulteriori informazioni sulla stored procedure sp_start_job memorizzati, visitare il seguente sito Web Microsoft Developer Network (MSDN):

http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx
Per ulteriori informazioni su come ottenere SQL Server 2005 Service Pack 3, fare clic sul numero seguente per visualizzare l'articolo della Microsoft Knowledge Base:

913089 come ottenere il service pack più recente per SQL Server 2005

Per ulteriori informazioni sulle nuove funzionalità di SQL Server 2005 Service Pack 3 (SP3) e sui miglioramenti apportati in SQL Server 2005 SP3, visitare il seguente sito Web Microsoft:

http://go.microsoft.com/fwlink/?LinkId=131442Per ulteriori informazioni su schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

I pacchetti di aggiornamento 822499 nuovo schema di denominazione per il software di Microsoft SQL Server

Per ulteriori informazioni sulla terminologia degli aggiornamenti software, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

824684 Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×