REVISIÓN: Hay disponible una actualización que agrega la propiedad de enlace de ClearRfcContext para el adaptador SAP basados en WCF de BizTalk Adapter Pack 2.0 o el adaptador de BizTalk Pack 2010

Se aplica a: BizTalk Adapters

Se aplica a

Este artículo se refiere a lo siguiente:
  • Pack de adaptador de BizTalk de Microsoft 2.0
  • Adaptador de Microsoft BizTalk Pack 2010

Introducción


Este artículo describe una actualización que se incluye en una actualización acumulativa para agregar la propiedad de enlace de ClearRfcContext para el adaptador SAP basado en Microsoft Windows Communication Foundation WCF de Microsoft BizTalk adaptador Pack.

Síntomas


Considere el escenario siguiente:
  • Tiene un equipo que está ejecutando Microsoft BizTalk Server 2006 R2, Microsoft BizTalk Server 2009 o Microsoft BizTalk Server 2010.
  • Utilice el adaptador SAP basados en WCF para conectarse al servidor SAP R/3.Note El adaptador SAP basados en WCF se incluye en Microsoft BizTalk Adapter Pack 2.0 o Microsoft BizTalk adaptador Pack 2010.
  • Crear una aplicación de BizTalk que utiliza el adaptador SAP para llamar a llamadas a funciones remotas (RFC) que utilizan variables globales SAP en el servidor SAP R/3.
  • Establezca la propiedad de enlace EnableConnectionPooling en True.
En esta situación, observa que los datos que se devuelven por el RFC están no lo que esperaba. Además, los datos que se devuelven parece ser afectado por una llamada anterior a la que se realizó la misma propiedad de enlace de ClearRfcContext de RFCs.The puede evitar problemas similares a los que se producen en este escenario.

 Causa


Este problema se produce porque, cuando está habilitada la agrupación de conexiones, la conexión correspondiente de SAP se devuelve a la agrupación de conexiones después de ejecuta una llamada RFC en el servidor SAP R/3. Cuando llega la siguiente llamada RFC, la misma conexión de SAP se recupera de la agrupación de conexiones y se utiliza para ejecutar la llamada. Si la RFC utiliza algunas variables globales, y no se limpian correctamente, la siguiente llamada a la RFC utiliza los valores almacenados en las variables globales de la llamada anterior. Esta situación podría conducir a resultados inesperados.Note Este problema se produce sólo si la RFC utiliza variables globales y las variables globales no se limpian correctamente por la solicitud de cambio.

Solución


Para resolver este problema, aplique esta actualización. A continuación, establezca la propiedad de enlace ClearRfcContext en True.

Información de actualización acumulativa

Adaptador de BizTalk Pack 2010

La revisión que resuelve este problema se incluye en la actualización acumulativa 1 para BizTalk adaptador Pack 2010.  Para obtener más información acerca de cómo obtener el paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base: 2539794 paquete de actualización acumulativa 1 para BizTalk adaptador Pack 2010

Adaptador de BizTalk Pack 2.0

Esta corrección se lanzó primero en el paquete de actualización acumulativa 2 para BizTalk Adapter Pack 2.0. Para obtener más información acerca de cómo obtener este paquete de actualización acumulativa, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2531605 Paquete de actualización acumulativa 2 para BizTalk Adapter Pack 2.0

Más información


Notas acerca de esta actualización

  • La propiedad de enlace de ClearRfcContext es aplicable sólo cuando la propiedad de enlace EnableConnectionPooling se establece en True.
  • Sin esta actualización, el adaptador SAP basados en WCF no elimina el contexto SAP R/3. Por lo tanto, el comportamiento es idéntico a lo que ocurre cuando la propiedad de enlace ClearRfcContext se establece en False. El valor predeterminado es False.
  • Cuando está habilitada la agrupación de la conexión y la propiedad de enlace ClearRfcContext se establece en True, el adaptador vacía la sesión SAP R/3 y borra todas las variables globales en el lado servidor SAP. Por lo tanto, la siguiente llamada en la misma conexión de SAP no se ve afectada por cualquier estado que se ha obtenido mediante la llamada actual.
  • Cuando está habilitada la agrupación de la conexión y la propiedad de enlace ClearRfcContext se establece en False, el adaptador no borra la sesión SAP R/3. En este caso, si la RFC utiliza algunas variables globales y las variables no se limpian correctamente, la siguiente llamada a la solicitud de cambio podría utilizar los valores que están almacenados en las variables globales de la llamada actual. Esta situación puede dar resultados inesperados.
  • Dado que la propiedad de enlace ClearRfcContext requiere un ida y vuelta adicional al servidor SAP R/3, verá una pequeña disminución del rendimiento al establecer la propiedad de enlace ClearRfcContext en True. Se recomienda establecer la propiedad de enlace ClearRfcContext en True sólo cuando la RFC utiliza variables globales y el RFC no se está limpiando las variables globales de forma adecuada.
  • Cuando se utiliza el adaptador en un escenario de proxy como desde código. NET, desea borrar la sesión de R/3 SAP entre llamadas RFC en la misma instancia de canal/proxy. En esta actualización, una nueva operación que se denomina RfcClearContext está disponible en el nodo RFC del Asistente para agregar referencia de servicio del adaptador cuando está seleccionada la opción SapBinding . La operación RfcClearContext intenta limpiar el contexto SAP R/3 y devuelve uno de los siguientes:
    • True : la limpieza del contexto SAP R/3 tuvo éxito. Puede realizar llamadas adicionales en el canal de proxy.
    • False : la conexión cerrada o desarrollado un error cuando la operación ha intentado limpiar el contexto SAP R/3. Debe descartar el proxy/canal actual, porque cualquier llamada adicional podría conducir a un error de comunicación.

Referencias


Para obtener más información acerca de cómo establecer una conexión con el sistema SAP, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):Para obtener más información acerca de las revisiones de BizTalk Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
2003907 Información acerca de las revisiones de BizTalk Server