В тази статия се отнася за следния продукт:
-
BizTalk адаптер за пакет 2.0
-
BizTalk адаптер Pack 2010
Симптоми
Когато използвате един от следните адаптери, които са включени в Microsoft BizTalk адаптер за пакет 2.0 или Microsoft BizTalk адаптер Pack 2010 на място получаване, получаване местоположението рестартира:
-
Windows комуникация фондация (WCF)-SQL адаптер
-
WCF Oracle адаптер
Освен това BizTalk Server може да срещнете ConnectionException изключение и BizTalk сървъра може да рестартирайте след едно от следните предупреждения се записва в регистрационния файл.
WCF SQL адаптер
Предупреждение 1
"Карта""WCF SQL" "повиши съобщение за грешка. Подробни данни "" System.ObjectDisposedException: достъп до готова обект. Име на обект: "Транзакция".at System.Transactions.Transaction.Rollback (Exception e) в Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (TimeSpan timeout, съобщение & съобщение, IInboundReply и отговор) в Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (TimeSpan timeout, съобщение и съобщение) в System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (TimeSpan timeout, RequestContext & requestContext) в System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (TimeSpan timeout, RequestContext & requestContext) "". "
Предупреждение 2
"Карта""WCF SQL" "повиши съобщение за грешка. Подробни данни "" System.TimeoutException: изключение от тип "System.TimeoutException" е thrown.at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired () в Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) в Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) в Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (TimeSpan timeout) в Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) в System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) в System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "
WCF Oracle адаптер
Предупреждение 1
Карта "WCF Oracle" повиши съобщение за грешка. Подробни данни "Microsoft.ServiceModel.Channels.Common.ConnectionException: изчакване" 00: 02:00 "изтече при изпълнението на функцията"WaitForMessage". ---> System.TimeoutException: изчакване "00: 02:00" изтече при изпълнението на функцията "WaitForMessage". в Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() в Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (OracleCommand команда TimeoutHelper timeoutHelper) в Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (OracleCommand команда, OracleCommonExecutionHelper executionHelper) в Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection ( OracleCommonExecutionHelper executionHelper)---край на вътрешното стека за грешки---в Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper) в Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) в Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) в Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) в System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) в System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Предупреждение 2
Карта "WCF Oracle" повиши съобщение за грешка. Подробни данни "System.TimeoutException: изчакване" 00: 02:00 "изтече при изпълнението на функцията"WaitForMessage". в Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() в Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (OracleCommand команда TimeoutHelper timeoutHelper) в Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (OracleCommand команда, OracleCommonExecutionHelper executionHelper) в Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage ( OracleCommonExecutionHelper executionHelper, OracleCommonConnectionWrapper връзка) в Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) в Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) в Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) в System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) в System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Причина
Този проблем възниква, защото получаване местоположението рестартира при метода WaitForMessage генерира TimeoutException изключение. Когато методът WaitForMessage генерира TimeoutException изключение, TryReceive метод се нарича и тогава WCF SQL адаптер или адаптер WCF Oracle обратно роли транзакцията. Обаче rollback операция може да генерира ObjectDisposedException изключение. Затова се генерира сред предупреждения, които са споменати в раздела "Симптоми".
Решение
Информация за сборна актуализация
BizTalk адаптер за пакет 2010
Актуалната корекция, която разрешава този проблем е включен в сборния пакет за актуализация 2 за BizTalk адаптер Pack 2010. За повече информация как да получите този пакет със сборни актуализации, щракнете върху следния номер на статия в базата знания на Microsoft:2572999сборния пакет за актуализация 2 за BizTalk адаптер Pack 2010
BizTalk адаптер за пакет 2.0
Актуалната корекция, която разрешава този проблем е включен в пакет със сборни актуализации 3 за BizTalk адаптер за пакет 2.0. За повече информация как да получите сборния пакет за актуализация, щракнете върху следния номер на статия в базата знания на Microsoft:
2557150 Пакет със сборни актуализации 3 за BizTalk адаптер за пакет 2.0Забележка Тази спешна корекция добавя < TraceIdentifier > и < / TraceIdentifier > етикети, които се изискват във файла WCF трасиране (.svcLog). След корекция добавя тези етикети, изхода на файлове за проследяване е правилен и услугата инструмент за проследяване (SvcTraceViewer.exe) се отваря големи WCF проследяване на файлове по-бързо. Следните :: изход следи липсва < TraceIdentifier > и < / TraceIdentifier > тагове, преди да приложите тази спешна корекция: < описание > ExecuteNonQuery::Exit < / описание >< описание > OpenConnection::Exit < / описание >< ExecuteScalar::Exit описание > < / описание >< Polling_WaitForMessage::Exit описание > < / описание >
Статус
Microsoft потвърждава, че това е проблем в продуктите на Microsoft, изброени в раздела "Отнася се за".
Повече информация
За повече информация относно метода IInputChannel.WaitForMessage посетете следния уеб сайт на MSDN:
Обща информация за метода IInputChannel.WaitForMessageЗа повече информация относно метода IInputChannel.TryReceive посетете следния уеб сайт на MSDN:
Обща информация за метода IInputChannel.TryReceiveЗа повече информация относно BizTalk Server спешни корекции щракнете върху следния номер на статия в базата знания на Microsoft:
2003907 Информация за BizTalk Server актуални корекции