FIX: Ricevere i riavvii di posizione quando si utilizza l'adattatore WCF-SQL o la scheda di Oracle di WCF in BizTalk Adapter Pack

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?

Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa a Microsoft Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×