Si applica a
BizTalk Adapters

In questo articolo si applica al seguente prodotto:

  • BizTalk Adapter Pack 2.0

  • BizTalk Adapter Pack 2010

Sintomi

Quando si utilizza una delle seguenti schede inclusi in Microsoft BizTalk Adapter Pack 2.0 o Microsoft BizTalk Adapter Pack 2010 su un indirizzo di ricezione, l'indirizzo di ricezione viene riavviato inaspettatamente:

  • Windows Communication Foundation (WCF)-adapter SQL

  • L'adattatore WCF-Oracle

Inoltre, BizTalk Server può verificarsi l'eccezione di ConnectionException e quindi BizTalk server venga riavviato dopo uno dei seguenti messaggi di avviso viene registrato nel registro dell'applicazione.

Adattatore WCF-SQL

Avviso 1

"La scheda""WCF-SQL" "generato un messaggio di errore. Dettagli "" System. ObjectDisposedException: Impossibile accedere a un oggetto eliminato. Nome oggetto: 'Transazione'.at System.Transactions.Transaction.Rollback (Exception e) in Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (timeout TimeSpan, messaggio & messaggio, IInboundReply e risposta) in Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (timeout TimeSpan, messaggio & messaggio) in System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (timeout TimeSpan, RequestContext & requestContext) in System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (timeout TimeSpan, RequestContext & requestContext) "". "

Avviso 2

"La scheda""WCF-SQL" "generato un messaggio di errore. Dettagli "" TimeoutException: eccezione di tipo 'System. TimeoutException' era () Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired thrown.at in Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) in Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) in Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (TimeSpan timeout) in Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) in System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) in System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "

Adattatore WCF-Oracle

Avviso 1

La scheda "WCF-Oracle" generato un messaggio di errore. Dettagli "Microsoft.ServiceModel.Channels.Common.ConnectionException: il timeout" 00: 02:00 "scaduto durante l'esecuzione della funzione"WaitForMessage". TimeoutException--->: il timeout "00: 02:00" scaduto durante l'esecuzione della funzione "WaitForMessage". in Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() in Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (comando OracleCommand, TimeoutHelper timeoutHelper) in Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (comando OracleCommand, OracleCommonExecutionHelper executionHelper) in Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection ( OracleCommonExecutionHelper executionHelper)---fine della traccia dello stack eccezione interna---in Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) in Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) in System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) in System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".

Avviso 2

La scheda "WCF-Oracle" generato un messaggio di errore. Dettagli "TimeoutException: il timeout" 00: 02:00 "scaduto durante l'esecuzione della funzione"WaitForMessage". in Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() in Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (comando OracleCommand, TimeoutHelper timeoutHelper) in Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (comando OracleCommand, OracleCommonExecutionHelper executionHelper) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage ( OracleCommonExecutionHelper executionHelper, OracleCommonConnectionWrapper connessione) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) in Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) in Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) in System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) in System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".

Causa

Questo problema si verifica perché l'indirizzo di ricezione viene riavviato inaspettatamente quando il metodo WaitForMessage genera un'eccezione TimeoutException . Quando il metodo WaitForMessage genera un'eccezione TimeoutException , viene chiamato il metodo TryReceive e quindi la scheda di WCF-SQL o la scheda di WCF-Oracle esegue il rollback della transazione. Tuttavia, l'operazione di rollback potrebbe generare un'eccezione ObjectDisposedException . Di conseguenza, viene generato uno degli avvisi citati nella sezione "Sintomi".

Risoluzione

Informazioni sull'aggiornamento cumulativo

Per BizTalk Adapter Pack 2010

L'hotfix per risolvere questo problema è incluso nel pacchetto di aggiornamento cumulativo 2 per BizTalk Adapter Pack 2010. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base:2572999pacchetto di aggiornamento cumulativo 2 per BizTalk Adapter Pack 2010

Per BizTalk Adapter Pack 2.0

L'hotfix per risolvere questo problema è incluso nel pacchetto di aggiornamento cumulativo 3 per BizTalk Adapter Pack 2.0. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo, fare clic sul numero seguente per visualizzare l'articolo della Microsoft Knowledge Base:

2557150 Pacchetto di aggiornamento cumulativo 3 per BizTalk Adapter Pack 2.0Nota Questo hotfix aggiunge la < TraceIdentifier > e < / TraceIdentifier > tag che sono necessarie per il file di traccia WCF (. svclog). Dopo l'aggiornamento rapido consente di aggiungere questi tag, l'output nel file di traccia è stato corretto e strumento Visualizzatore di traccia del servizio (SvcTraceViewer.exe) visualizzato più rapidamente i file di traccia WCF grandi. I seguenti :: uscita< TraceIdentifier > la mancano di tracce e < / TraceIdentifier > tag prima di applicare questo hotfix: < descrizione > ExecuteNonQuery::Exit < / descrizione >< descrizione > OpenConnection::Exit < / Description >< descrizione > ExecuteScalar::Exit < / Description >< descrizione > Polling_WaitForMessage::Exit < / Description >

Stato

Microsoft ha confermato che questo problema si verifica con i prodotti elencati nella sezione "Si applica a" di questo articolo.

Ulteriori informazioni

Per ulteriori informazioni sul metodo IInputChannel.WaitForMessage , visitare il seguente sito Web MSDN:

Informazioni generali sul metodo IInputChannel.WaitForMessagePer ulteriori informazioni sul metodo IInputChannel.TryReceive , visitare il seguente sito Web MSDN:

Informazioni generali sul metodo IInputChannel.TryReceivePer ulteriori informazioni sugli aggiornamenti rapidi di BizTalk Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

2003907 Informazioni sugli aggiornamenti rapidi di BizTalk Server

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.