Dieser Artikel gilt für Folgendes Produkt:
-
BizTalk Adapter Pack 2.0
-
BizTalk Adapter Pack 2010
Problembeschreibung
Wenn Sie eine der folgenden Adapter, die in Microsoft BizTalk Adapter Pack 2.0 oder Microsoft BizTalk Adapter Pack 2010 auf einen Empfangsspeicherort verwenden, wird der Empfangsspeicherort unerwartet neu gestartet:
-
Windows Communication Foundation (WCF)-SQL-Adapter
-
Oracle WCF-adapter
Außerdem BizTalk Server ConnectionException Ausnahme auftreten und dann BizTalk Server möglicherweise neu starten, nachdem eine folgende Warnung im Anwendungsprotokoll protokolliert.
WCF-SQL-adapter
1 Warnung
"Adapter""WCF-SQL" "hat eine Fehlermeldung ausgegeben. Details "" System.ObjectDisposedException: Verworfene Objekt kann nicht zugegriffen werden. Objektname: 'Buchung' at System.Transactions.Transaction.Rollback (Exception e) am Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (TimeSpan-Timeouts Nachricht & IInboundReply & Antworten Nachricht) an Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (TimeSpan-Timeouts Nachricht & Nachricht) am System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (TimeSpan-Timeouts RequestContext & RequestContext) auf System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (TimeSpan-Timeouts RequestContext & RequestContext) "". "
Warnung 2
"Adapter""WCF-SQL" "hat eine Fehlermeldung ausgegeben. Details "" System.TimeoutException: Ausnahme vom Typ 'System.TimeoutException' wurde thrown.at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired () am Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand SqlCommand, TimeoutHelper TimeoutHelper) in Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper TimeoutHelper) an Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (TimeSpan Timeout) auf Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan Timeout) an System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan Timeout) am System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "
Oracle WCF-adapter
1 Warnung
Der Adapter "WCF Oracle" wird eine Fehlermeldung ausgelöst. Details "Microsoft.ServiceModel.Channels.Common.ConnectionException: das Timeout" 00: 02:00 "beim Ausführen der Funktion"WaitForMessage"ist abgelaufen. ---> System.TimeoutException: das Timeout "00: 02:00" beim Ausführen der Funktion "WaitForMessage" ist abgelaufen. am Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() in Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (OracleCommand Befehl TimeoutHelper TimeoutHelper) am Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (OracleCommand Befehl, OracleCommonExecutionHelper ExecutionHelper) in Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection ( OracleCommonExecutionHelper-ExecutionHelper)--Stapelzustand innere Ausnahme--zum Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper ExecutionHelper) am Ende Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper ExecutionHelper) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan Timeout) an Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan Timeout) auf System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan Timeout) an System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Warnung 2
Der Adapter "WCF Oracle" wird eine Fehlermeldung ausgelöst. Details "System.TimeoutException: das Timeout" 00: 02:00 "beim Ausführen der Funktion"WaitForMessage"ist abgelaufen. am Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() in Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (OracleCommand Befehl TimeoutHelper TimeoutHelper) am Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (OracleCommand Befehl, OracleCommonExecutionHelper ExecutionHelper) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage ( OracleCommonExecutionHelper ExecutionHelper OracleCommonConnectionWrapper-Verbindung) auf Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper ExecutionHelper) an Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan Timeout) auf Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan Timeout) an System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan Timeout) am System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Ursache
Dieses Problem tritt auf, weil der Empfangsspeicherort wird unerwartet neu gestartet, wenn die WaitForMessage -Methode TimeoutException -Ausnahme generiert. Wenn die WaitForMessage -Methode TimeoutException -Ausnahme generiert, TryReceive -Methode aufgerufen und anschließend Adapter WCF-SQL oder Oracle WCF-Adapter ein Rollback der Transaktions. Der Vorgang des Zurücksetzens generiert jedoch ObjectDisposedException Ausnahme. Daher wird eine Warnung, die im Abschnitt "Symptome" aufgeführt sind.
Lösung
Informationen zum kumulativen Update
BizTalk Adapter Pack 2010
Der Hotfix, der dieses Problem behebt ist im kumulativen Updatepaket 2 für BizTalk Adapter Pack 2010 enthalten. Weitere Informationen zu diesem kumulativen Updatepaket klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:2572999Kumulatives Updatepaket 2 für BizTalk Adapter Pack 2010
BizTalk Adapter Pack 2.0
Der Hotfix, der dieses Problem behebt gehört Kumulatives Updatepaket 3 für BizTalk Adapter Pack 2.0. Weitere Informationen dazu, wie Sie das kumulative Updatepaket beziehen, finden im folgenden Artikel der Microsoft Knowledge Base:
2557150 Kumulatives Updatepaket 3 für BizTalk Adapter Pack 2.0HinweisDieser Hotfix fügt < TraceIdentifier > und < / TraceIdentifier > Tags, die in der WCF-Tracing-Datei (svclog) erforderlich sind. Nach der Hotfix fügt diese Tags hinzu, die Ausgabe in die Ablaufverfolgungsdateien korrigiert und Service Trace Viewer-Tool (SvcTraceViewer.exe) große WCF Tracing Dateien schneller geöffnet. Folgende : Exit Spuren fehlen < TraceIdentifier > und < / TraceIdentifier > tags, bevor Sie diesen Hotfix anwenden: < Beschreibung > ExecuteNonQuery::Exit < / Beschreibung >< Beschreibung > OpenConnection::Exit < / Description >< Beschreibung > ExecuteScalar::Exit < / Description >< Beschreibung > Polling_WaitForMessage::Exit < / Beschreibung >
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen
Weitere Informationen über die Methode IInputChannel.WaitForMessage finden Sie auf der folgenden MSDN-Website:
Allgemeine Informationen über die IInputChannel.WaitForMessage-MethodeWeitere Informationen über die Methode IInputChannel.TryReceive finden Sie auf der folgenden MSDN-Website:
Allgemeine Informationen über die IInputChannel.TryReceive-MethodeWeitere Informationen zu BizTalk Server Updates klicken Sie auf die folgenden Artikelnummer der Microsoft Knowledge Base:
2003907 Informationen zu BizTalk Server-Updates