REVISIÓN: Recibe reinicios de ubicación cuando se utiliza el adaptador de SQL de WCF o Oracle de WCF en BizTalk adaptador Pack

Se aplica: BizTalk Adapters

Este artículo se aplica al producto siguiente:
  • Adaptador de BizTalk Pack 2.0
  • Adaptador de BizTalk Pack 2010

Síntomas


Cuando utiliza uno de los siguientes adaptadores que se incluyen en Microsoft BizTalk Adapter Pack 2.0 o en Microsoft BizTalk adaptador Pack 2010 en una ubicación de recepción, la ubicación de recepción se reinicia inesperadamente:
  • Windows Communication Foundation (WCF)-adaptador SQL
  • El adaptador WCF y Oracle
Además, BizTalk Server puede aparecer la excepción de ConnectionException , y el servidor BizTalk server puede reiniciar después de que una de las siguientes advertencias se registra en el registro de aplicación.

Adaptador de SQL de WCF

Advertencia 1
"El adaptador""WCF-SQL" "provoca un mensaje de error. Detalles "" System.ObjectDisposedException: no se puede tener acceso a un objeto desechado. Nombre del objeto: 'Transacción'.a System.Transactions.Transaction.Rollback (Exception e) en Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (tiempo de espera TimeSpan, mensaje & mensaje IInboundReply & respuesta) en Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (tiempo de espera TimeSpan, mensaje & mensaje) en System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (tiempo de espera TimeSpan, RequestContext & requestContext) en System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (tiempo de espera TimeSpan, RequestContext & requestContext) "". "
Advertencia 2
"El adaptador""WCF-SQL" "provoca un mensaje de error. Detalles "" System.TimeoutException: excepción de tipo 'System.TimeoutException' era () Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired de thrown.at en Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) en Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) en Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (tiempo de espera TimeSpan) en Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (tiempo de espera TimeSpan) en System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (tiempo de espera TimeSpan) en System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "

Adaptador de WCF y Oracle

Advertencia 1
El adaptador "WCF-Oracle" provoca un mensaje de error. Detalles "Microsoft.ServiceModel.Channels.Common.ConnectionException: el tiempo de espera" 00: 02:00 "caducado mientras se ejecuta la función"WaitForMessage". ---> System.TimeoutException: el tiempo de espera "00: 02:00" caducado mientras se ejecuta la función "WaitForMessage". en Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() en Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (comando OracleCommand, TimeoutHelper timeoutHelper) en Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (comando OracleCommand, OracleCommonExecutionHelper executionHelper) en Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection () ExecutionHelper de OracleCommonExecutionHelper)---fin del seguimiento de pila de excepción interna---en Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper) en Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) en Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (tiempo de espera TimeSpan) en Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (tiempo de espera TimeSpan) en System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (tiempo de espera TimeSpan) en System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Advertencia 2
El adaptador "WCF-Oracle" provoca un mensaje de error. Detalles "System.TimeoutException: el tiempo de espera" 00: 02:00 "caducado mientras se ejecuta la función"WaitForMessage". en Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() en Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (comando OracleCommand, TimeoutHelper timeoutHelper) en Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (comando OracleCommand, OracleCommonExecutionHelper executionHelper) en Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage () OracleCommonExecutionHelper executionHelper, OracleCommonConnectionWrapper conexión) en Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) en Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (tiempo de espera TimeSpan) en Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (tiempo de espera TimeSpan) en System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (tiempo de espera TimeSpan) en System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".

 Causa


Este problema se produce porque la ubicación de recepción se reinicia inesperadamente cuando el método WaitForMessage genera una excepción de TimeoutException . Cuando el método WaitForMessage genera una excepción TimeoutException , se llama al método TryReceive y, a continuación, el adaptador de SQL de WCF o WCF Oracle deshace la transacción. Sin embargo, la operación de deshacer puede generar una excepción ObjectDisposedException . Por lo tanto, se genera una de las advertencias que se mencionan en la sección "Síntomas".

Solución


Información de 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 el adaptador de BizTalk Pack 2010. 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:2572999 paquete de actualización acumulativa 2 para el adaptador de BizTalk 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
Nota Esta revisión agrega el < TraceIdentifier > y < / TraceIdentifier > etiquetas que son necesarias en el archivo de traza de WCF (.svcLog). Después de la revisión agrega estas etiquetas, se corrige el resultado en los archivos de seguimiento y herramienta de Visor de seguimiento de servicio (SvcTraceViewer.exe) abre los archivos de seguimiento de WCF grandes más rápidamente. Los siguientes :: salir rastros carecen de la < TraceIdentifier > y < / TraceIdentifier > etiquetas antes de aplicar este hotfix: < Descripción > ExecuteNonQuery::Exit < / Descripción >< Descripción > OpenConnection::Exit < / Descripción >< Descripción > ExecuteScalar::Exit < / Descripción >< Descripción > Polling_WaitForMessage::Exit < / Descripción >

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

Más información


Para obtener más información acerca del método IInputChannel.WaitForMessage , visite el siguiente sitio Web MSDN:Para obtener más información acerca del método IInputChannel.TryReceive , visite el siguiente sitio Web 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