Poprawka: Podczas korzystania karty WCF SQL lub karta WCF Oracle w BizTalk Adapter Pack otrzymać ponownych uruchomień lokalizacji

Dotyczy: BizTalk Adapters

Ten artykuł dotyczy następujących produktów:
  • BizTalk Adapter Pack 2.0
  • BizTalk Adapter Pack 2010

Objawy


Podczas korzystania z jednego z następujących kart, które są uwzględnione w programie Microsoft BizTalk Adapter Pack 2.0 lub Microsoft BizTalk Adapter Pack 2010 w lokalizacji, miejsce odbioru nieoczekiwanie uruchamia się ponownie:
  • Windows Communication Foundation (WCF)-SQL adapter
  • Karta WCF Oracle
Dodatkowo BizTalk Server mogą wystąpić wyjątek ConnectionException i ponownie uruchom okna na serwerze BizTalk, po jednym z następujących ostrzeżeń jest rejestrowane w dzienniku aplikacji.

Karta WCF SQL

Ostrzeżenie 1
"Karta""WCF SQL" "wywoływane komunikat o błędzie. Szczegóły "" System.ObjectDisposedException: nie można uzyskać dostępu do obiektu zostało usunięte. Nazwa obiektu: "Transakcja".w System.Transactions.Transaction.Rollback (wyjątek e) na Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (TimeSpan limitu czasu, wiadomość & wiadomości, IInboundReply i odpowiedzi) o Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (TimeSpan limitu czasu, wiadomości i wiadomości) na System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (TimeSpan limitu czasu, RequestContext & requestContext) na System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (TimeSpan limitu czasu, RequestContext & requestContext) "". "
Ostrzeżenie 2
"Karta""WCF SQL" "wywoływane komunikat o błędzie. Szczegóły "" System.TimeoutException: Wystąpił wyjątek typu 'System.TimeoutException' (thrown.at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired) o Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) o Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) o Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (TimeSpan timeout) na Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) o System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) na System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "

Karta WCF Oracle

Ostrzeżenie 1
Karta "WCF Oracle" wywoływane komunikat o błędzie. Szczegóły "Microsoft.ServiceModel.Channels.Common.ConnectionException: limit czasu" 00: 02:00 "minął podczas wykonywania funkcji"Oczekiwania operacji WaitForMessage". ---> System.TimeoutException: limit czasu "00: 02:00" minął podczas wykonywania funkcji "Oczekiwania operacji WaitForMessage". na Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() na Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (polecenie OracleCommand, TimeoutHelper timeoutHelper) w Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (OracleCommonExecutionHelper executionHelper, OracleCommand, polecenie) o () Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection OracleCommonExecutionHelper executionHelper)---koniec śledzenia wewnętrznego stosu wyjątków---na Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper) o Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) na Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) o Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) na System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) o System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Ostrzeżenie 2
Karta "WCF Oracle" wywoływane komunikat o błędzie. Szczegóły "System.TimeoutException: limit czasu" 00: 02:00 "minął podczas wykonywania funkcji"Oczekiwania operacji WaitForMessage". na Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() na Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (polecenie OracleCommand, TimeoutHelper timeoutHelper) na Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (OracleCommonExecutionHelper executionHelper, OracleCommand, polecenie) o () Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage OracleCommonExecutionHelper executionHelper, OracleCommonConnectionWrapper połączenia) na Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) o Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) na Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) o System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) na System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".

Przyczyna


Ten problem występuje, ponieważ miejsce odbioru nieoczekiwanie uruchamia się ponownie podczas oczekiwania operacji WaitForMessage metoda generuje TimeoutException wyjątek. Podczas oczekiwania operacji WaitForMessage metoda generuje TimeoutException wyjątek, wywoływana jest metoda TryReceive , a następnie karta WCF SQL lub karta WCF Oracle wycofuje transakcję. Jednak operacja wycofywania może generować wyjątek ObjectDisposedException . W związku z tym jeden ostrzeżeń, które są wymienione w sekcji "Symptomy" generowany.

Rozwiązanie


Informacje dotyczące zbiorczej aktualizacji

BizTalk Adapter Pack 2010

Poprawka umożliwiająca rozwiązanie tego problemu jest wliczana zbiorczego pakietu aktualizacji 2 dla programu BizTalk Adapter Pack 2010. Aby uzyskać więcej informacji dotyczących sposobu uzyskiwania tego pakietu aktualizacji zbiorczej, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:2572999 zbiorczego pakietu aktualizacji 2 dla programu BizTalk Adapter Pack 2010

BizTalk Adapter Pack 2.0

Poprawka rozwiązująca ten problem jest wliczana zbiorczego pakietu aktualizacji 3 dla programu BizTalk Adapter Pack 2.0. Aby uzyskać więcej informacji o tym, jak uzyskać pakiet aktualizacji zbiorczej, kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2557150 Zbiorczy pakiet aktualizacji 3 dla programu BizTalk Adapter Pack 2.0
Uwaga Ta poprawka dodaje < TraceIdentifier > i < / TraceIdentifier > znaczniki, które są wymagane w pliku śledzenia WCF (.svcLog). Po poprawka dodaje znaczniki, poprawione dane wyjściowe w pliku śledzenia i szybciej dużych plików śledzenie WCF Otwiera narzędzie śledzenia usług (SvcTraceViewer.exe). Następujące :: Zakończ< TraceIdentifier > Brak śladów i < / TraceIdentifier > tagi przed zastosowaniem tej poprawki: < opis > ExecuteNonQuery::Exit < / opis >< opis > OpenConnection::Exit < / opis >< opis > ExecuteScalar::Exit < / opis >< opis > Polling_WaitForMessage::Exit < / opis >

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Więcej informacji


Aby uzyskać więcej informacji o metodzie iinputchannel.WaitForMessage odwiedź następującą witrynę MSDN:Aby uzyskać więcej informacji o metodzie iinputchannel.tryreceive odwiedź następującą witrynę MSDN:Aby uzyskać więcej informacji na temat poprawek programu BizTalk Server kliknij następujący numer artykułu w celu wyświetlenia tego artykułu z bazy wiedzy Microsoft Knowledge Base:
2003907 Informacje dotyczące poprawek programu BizTalk Server