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:2572999paquete 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.0Nota 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:
Información general acerca del método IInputChannel.WaitForMessagePara obtener más información acerca del método IInputChannel.TryReceive , visite el siguiente sitio Web MSDN:
Información general acerca del método IInputChannel.TryReceivePara 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