REVISIÓN: Recibe mensajes de error de la memoria cuando se utiliza la duplicación de mezcla con la sincronización Web en SQL Server 2005 o en SQL Server 2008

Síntomas

Utiliza duplicación de mezcla de SQL Server 2005 o duplicación de mezcla de SQL Server 2008 con una sincronización Web en suscriptor. Se produce una pérdida de memoria después de sincronizaciones repetidas y puede recibir errores de "memoria insuficiente" después de un período de tiempo. Esto se hace notar cuando el proceso de host no se reinicia durante mucho tiempo, como cuando se utiliza el agente de mezcla (Replmerg.exe) con el continuo switch - o cuando se especifica el parámetro continuado en el perfil del agente que se aplica al agente. También este problema puede afectar a una aplicación de RMO o servicio que desarrolló y que la sincronización se ejecuta en un bucle cuando se ejecuta la aplicación durante varios días sin salir.

Causa

Varios objetos internos se filtran tras cada sincronización.

Solución

SQL Server 2005 Service Pack 3


La corrección para este problema se publicó primero en la actualización acumulativa 6 para SQL Server 2005 Service Pack 3. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
974648 acum actualizar paquete 6 para el Service Pack 3 de SQL Server 2005
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la versión anterior de SQL Server 2005. Microsoft recomienda que considere la posibilidad de aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
960598 construye el SQL Server 2005 que se publicaron después del lanzamiento de SQL Server 2005 Service Pack 3.
Las revisiones de Microsoft SQL Server 2005 se crean para determinados service Pack de SQL Server. Debe aplicar una revisión de Service Pack 3 de SQL Server 2005 a una instalación de SQL Server 2005 Service Pack 3. De forma predeterminada, cualquier hotfix suministrada en un service pack de SQL Server se incluye en el próximo service pack de SQL Server.

La versión de SQL Server 2008

Importante: Debe instalar esta revisión si está ejecutando la versión de SQL Server 2008.

La corrección para este problema se publicó por primera vez en la Actualización acumulativa 8. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa para SQL Server 2008, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
975976 acum actualizar paquete 8 para SQL Server 2008
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Le recomendamos que considere aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
956909 the SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008

SQL Server 2008 Service Pack 1

Importante: Debe instalar esta revisión si está ejecutando SQL Server 2008 Service Pack 1.


La corrección para este problema se publicó primero en 5 de actualización acumulativa para SQL Server 2008 Service Pack 1. Para obtener más información acerca de este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
Paquete 5 de actualización de 975977 acumulativa para SQL Server 2008 Service Pack 1
Nota: Como las compilaciones son acumulativas, cada versión de corrección nueva contiene todas las revisiones y revisión de todas las revisiones de seguridad que se incluyeron con la anterior de SQL Server 2008. Microsoft recomienda que considere la posibilidad de aplicar la versión más reciente de revisión que contenga este hotfix. Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:
970365 the SQL Server 2008 generaciones que se publicaron después del lanzamiento de SQL Server 2008 Service Pack 1
Las revisiones de Microsoft SQL Server 2008 se crean para determinados service Pack de SQL Server. Debe aplicar un hotfix de SQL Server 2008 Service Pack 1 en una instalación de SQL Server 2008 Service Pack 1. De forma predeterminada, cualquier hotfix suministrada en un service pack de SQL Server se incluye en el próximo service pack de SQL Server.

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Solución alternativa

Para evitar este problema, utilice uno de los métodos siguientes:

Método 1

Si está utilizando a un agente de mezcla en modo continuo, detener el proceso del agente de mezcla periódicamente y vuelva a iniciarlo.

Por ejemplo, recibe errores de "memoria insuficiente" después de cinco días, y el agente de mezcla está programado como un trabajo. A continuación, programar un trabajo de agente de SQL Server nueva llamar a sp_stop_job seguido sp_start_job especificando el nombre del agente de mezcla, que se desplazará el proceso afectado cada cinco días. Cuando se detiene el proceso del agente de mezcla (Replmerg.exe), se publicará cualquier memoria perdida dentro del espacio de memoria de proceso.

Para obtener más información acerca del uso de-switch continuado en el agente de mezcla, consulte el siguiente sitio Web de Microsoft Developer Network (MSDN):

Método 2

Si utiliza al agente de mezcla de un trabajo, puede configurar manual lógica de bucle dentro del trabajo con pasos adicionales en lugar de basarse en el parámetro continuo. El proceso del agente de mezcla de un bucle continuamente internamente para siempre, en lugar de programar al agente de mezcla como un paso de trabajo que se repite con frecuencia como una vez cada minuto. El proceso se cerrará entre reintentos y libera la memoria perdida.
Modifique al agente de mezcla que trabajo para que se repiten los pasos en un bucle con una pausa entre las repeticiones.
  1. Después del paso [3] "Detectar cierre del agente no registradas," Agregar un nuevo paso [4] denominada "Bucle indefinido de Reintentar". Establecer el tipo de TSQL y el comando para "waitfor delay ' 0: 00:05'", este retraso TSQL proporcionará una pausa de segundo 5 que se puede configurar como un intervalo de sondeo de tal manera que el agente de mezcla se haga una pequeña pausa entre ejecuciones y no ejecute constantemente. En la ficha Avanzadas especificar como "Ir paso a paso a [2] agente de ejecución" y "On Error" acción "De éxito acción" como "Ir a agente de ejecución de paso [2]."
  2. Editar paso [2] Ejecutar agente para asegurarse de que se alcance el bucle paso [4]. En la ficha avanzada del paso [2], establezca la acción de éxito en "Ir a paso: [4] bucle indefinido de reintento" y establezca la acción de error On a "Ir al paso siguiente."
  3. Editar paso [3] "Apagado del agente no registrado de detectar" para asegurarse de que se alcance el bucle en el paso [4]. En la ficha Avanzadas del paso [3], defina la acción de éxito en, "Ir al siguiente paso". También puede decidir si desea que la acción del paso [3] en error se establezca como "Ir al siguiente paso" o "Salir del trabajo e informar de errores". Si se configura para dejar de fumar, se mostrará el error trabajo en Monitor de duplicación y el Monitor de trabajo. Si se configura en caso de error para ir al cuarto paso del bucle, puede volver a ejecutar el agente de mezcla indefinidamente y registran los errores indefinidamente.

Método 3

De forma similar si utiliza una aplicación RMO para llamar al método MergeSynchronizationAgent.Synchronize() que sincroniza la base de datos de suscriptor en un bucle, detenga y reinicie el proceso periódicamente para liberar cualquier memoria que se pierde debido a este problema.
Para obtener más información acerca de este objeto y el método, consulte el siguiente sitio Web de Microsoft Developer Network (MSDN): http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx

Referencias

Para obtener más información acerca de cómo utilizar el continuo switch - en el agente de mezcla, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
Para obtener más información acerca del procedimiento almacenado de sp_stop_job , visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
Para obtener más información acerca del procedimiento sp_start_job almacenados, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
Para obtener más información sobre cómo obtener el Service Pack 3 de SQL Server 2005, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

913089 cómo obtener el service pack más reciente para SQL Server 2005

Para obtener más información acerca de las nuevas características de SQL Server 2005 Service Pack 3 (SP3) y las mejoras de SQL Server 2005 SP3, visite el siguiente sitio Web de Microsoft:Para obtener más información acerca del esquema de nomenclatura para las actualizaciones de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

Paquetes de actualización de 822499 nuevo esquema de nomenclatura para software de Microsoft SQL Server

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft
Propiedades

Id. de artículo: 974660 - Última revisión: 13 ene. 2017 - Revisión: 1

Comentarios