Solución: Las llamadas de función remotas no funcionan después de que el adaptador SAP basado en WCF recibe el código de error RFC_FAILURE en el paquete de adaptadores BizTalk

Se aplica a
BizTalk Adapters

Este artículo se aplica al siguiente producto:

  • BizTalk Adapter Pack 2.0
  • BizTalk Adapter Pack 2010

Síntomas

Tenga en cuenta el siguiente escenario:

  • Un programa cliente utiliza el adaptador SAP basado en Microsoft Windows Communication Foundation (WCF) (también conocido como Microsoft BizTalk Adapter para mySAP Business Suite 3.0) para invocar algunas llamadas de función remotas en el modelo de servicio WCF en un sistema SAP.

    Nota: Este adaptador se incluye en Microsoft BizTalk Adapter Pack 2.0 o en Microsoft BizTalk Adapter Pack 2010.

  • Se produce un problema de red y el adaptador WCF-SAP pierde la conexión con el sistema SAP.

En este escenario, el sistema SAP devuelve el código de error RFC_FAILURE y las llamadas de función remota no funcionan. Además, se encuentra una excepción ThreadAbortException y recibe el siguiente error:

Nota

System.Threading.ThreadAbortException: Se anuló el subproceso.

en RfcCallReceiveExU(UInt32 , Char* , RFC_PARAMETER* , RFC_PARAMETER* , RFC_PARAMETER* , RFC_TABLE* , Char** )

en Microsoft.Adapters.SAP.CNativeInvoker.Invoke(CNativeInvoker* , UInt32 connectionHandle, Char* m_szFunctionName)

Después de un tiempo, se encuentran muchas excepciones RFCException y recibe muchos errores similares a los siguientes:

Nota

Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_FAILURE. AdapterErrorMessage=Error devuelto por RfcCallReceiveEx al llamar a RFC: Z_GET_PO_BY_SAP.

Además, se genera el siguiente seguimiento de pila de llamadas en el servidor BizTalk:

Nota

en Microsoft.Adapters.SAP.RFCException.HelperThrow(Int32 retCode, String additionalErrorMessage)

en Microsoft.Adapters.SAP.RfcOutboundInvoker.Invoke()

      

Causa

Este problema se produce porque el adaptador WCF-SAP reutiliza incorrectamente el canal SAP en el sistema SAP.

Después de que el adaptador WCF-SAP reciba el RFC_FAILURE código de error, el adaptador WCF-SAP encontrará un error. Por lo tanto, el canal SAP en el sistema SAP se reutiliza incorrectamente.

Resolución

Información sobre la actualización acumulativa

Para BizTalk Adapter Pack 2010

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

2572999 paquete de actualización acumulativa 2 para BizTalk Adapter Pack 2010

Para BizTalk Adapter Pack 2.0

La revisión que resuelve este problema se incluye en el paquete de actualización acumulativa 3 para BizTalk Adapter Pack 2.0.

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:

2557150 paquete de actualización acumulativa 3 para BizTalk Adapter Pack 2.0

Estado

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

Más información

Para obtener más información acerca de cómo usar el modelo de servicio WCF para invocar RFC, visite el siguiente sitio web de MSDN:

Cómo usar el modelo de servicio WCF para invocar RFC 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 sobre revisiones de BizTalk Server