Este artigo aplica-se ao seguinte produto:
-
BizTalk placa Pack 2.0
-
BizTalk placa Pack 2010
Sintomas
Quando utiliza uma das seguintes placas que estão incluídas no Microsoft BizTalk placa Pack 2.0, ou no Microsoft BizTalk placa Pack 2010 numa localização de recepção, a localização de recepção é reiniciado inesperadamente:
-
O Windows Communication Foundation (WCF)-adaptador SQL
-
A placa de WCF Oracle
Além disso, o servidor BizTalk pode encontrar a excepção de ConnectionException e, em seguida, o BizTalk server poderá ser reiniciado depois de um dos seguintes avisos é registado no registo de aplicações.
Placa de WCF SQL
Aviso 1
"A placa""WCF-SQL" "provocou uma mensagem de erro. Detalhes "" System.ObjectDisposedException: não é possível aceder um objecto eliminado. Nome do objecto: 'Transacção'.at System.Transactions.Transaction.Rollback (excepção e) em Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (TimeSpan tempo limite, mensagem de & mensagem, IInboundReply & resposta), Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (tempo de espera de TimeSpan, mensagem & mensagem) em System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (tempo de espera do TimeSpan RequestContext & requestContext) em System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (tempo de espera do TimeSpan RequestContext & requestContext) "". "
Aviso 2
"A placa""WCF-SQL" "provocou uma mensagem de erro. Detalhes "" System.TimeoutException: excepção do tipo 'System.TimeoutException' foi thrown.at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired (), Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) em Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (tempo limite TimeSpan) em Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (tempo limite TimeSpan) System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (tempo limite TimeSpan) no System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "
Placa de WCF Oracle
Aviso 1
A placa "WCF Oracle" provocou uma mensagem de erro. Detalhes "Microsoft.ServiceModel.Channels.Common.ConnectionException: O tempo de espera" 00: 02:00 "expirado ao executar a função"WaitForMessage". ---> System.TimeoutException: O tempo de espera "00: 02:00" expirado ao executar a função "WaitForMessage". a Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() em Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (comando de OracleCommand, TimeoutHelper timeoutHelper) em Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (comando de OracleCommand, OracleCommonExecutionHelper executionHelper) a Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection ( OracleCommonExecutionHelper executionHelper)---fim do rastreamento da pilha de excepção interna---em Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper), Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) em Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (tempo limite TimeSpan) Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (tempo limite TimeSpan) em System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (tempo limite TimeSpan) System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Aviso 2
A placa "WCF Oracle" provocou uma mensagem de erro. Detalhes "System.TimeoutException: O tempo de espera" 00: 02:00 "expirado ao executar a função"WaitForMessage". a Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() em Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (comando de OracleCommand, TimeoutHelper timeoutHelper) em Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (comando de OracleCommand, OracleCommonExecutionHelper executionHelper) a Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage ( ExecutionHelper de OracleCommonExecutionHelper, OracleCommonConnectionWrapper ligação) em Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper), Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (tempo limite TimeSpan) em Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (tempo limite TimeSpan) System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (tempo limite TimeSpan) no System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Causa
Este problema ocorre porque a localização de recepção é reiniciado inesperadamente quando o método WaitForMessage gera uma excepção de TimeoutException . Quando o método WaitForMessage gera uma excepção de TimeoutException , o método TryReceive é chamado e, em seguida, o adaptador de WCF-SQL ou a placa de WCF Oracle reverte a transacção. No entanto, a operação de anulação poderá gerar uma excepção de ObjectDisposedException . Por conseguinte, uma das advertências que são mencionadas na secção "Sintomas" é gerada.
Resolução
Informações de actualização cumulativa
Para o adaptador de BizTalk Pack 2010
A correcção que resolve este problema está incluída no pacote de actualização cumulativa 2 para BizTalk placa Pack 2010. Para mais informações sobre como obter este pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base: o pacote de actualização cumulativa25729992 para o BizTalk placa Pack 2010
Para o adaptador de BizTalk Pack 2.0
A correcção que resolve este problema está incluída no pacote de actualização cumulativa 3 para BizTalk placa Pack 2.0. Para mais informações sobre como obter o pacote de actualização cumulativa, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2557150 Pacote de actualização cumulativa 3 para o BizTalk placa Pack 2.0NotaEsta correcção adiciona o < TraceIdentifier > e < / TraceIdentifier > códigos que são necessárias no ficheiro de rastreio de WCF (.svcLog). Depois da correcção adiciona estes códigos, a saída de ficheiros de rastreio é corrigida e ferramenta de Visualizador de rastreio do serviço (SvcTraceViewer.exe) abre ficheiros de rastreio de WCF grandes mais rapidamente. O seguinte :: sair vestígios faltam a < TraceIdentifier > e < / TraceIdentifier > antes de aplicar esta correcção de tags: < descrição > ExecuteNonQuery::Exit < / descrição >< descrição > OpenConnection::Exit < / descrição >< ExecuteScalar::Exit Descrição > < / descrição >< Polling_WaitForMessage::Exit Descrição > < / descrição >
Estado
A Microsoft confirmou que este problema ocorre nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informações
Para mais informações sobre o método de IInputChannel.WaitForMessage , visite o seguinte Web site da MSDN:
Informações gerais sobre o método de IInputChannel.WaitForMessagePara mais informações sobre o método de IInputChannel.TryReceive , visite o seguinte Web site da MSDN:
Informações gerais sobre o método de IInputChannel.TryReceivePara mais informações sobre correcções do BizTalk Server, clique no número de artigo seguinte para visualizar o artigo na Microsoft Knowledge Base:
2003907 Obter informações sobre correcções do BizTalk Server