Ez a cikk a következő termékre vonatkozik:
- BizTalk Adapter Pack 2.0
- BizTalk Adapter Pack 2010
Tünetek
Ha a Microsoft BizTalk Adapter Pack 2.0 vagy a Microsoft BizTalk Adapter Pack 2010 csomagban található alábbi adapterek valamelyikét használja egy vételi helyen, a fogadási hely váratlanul újraindul:
- A Windows kommunikációs alaprendszer (WCF) – SQL-adapter
- A WCF-Oracle adapter
Ezenkívül a BizTalk Server ConnectionException kivételt tapasztalhatott, majd a BizTalk kiszolgáló újraindulhat, miután az alábbi figyelmeztetések egyike bekerült az alkalmazásnaplóba.
WCF-SQL-adapter
1. figyelmeztetés
Megjegyzés
"The adapter ""WCF-SQL"" hibaüzenetet küldött. Részletek ""System.ObjectDisposedException: Cannot access a discard object.
Objektumnév: 'Transaction'.
itt: System.Transactions.Transaction.Rollback(Exception e)
itt: Microsoft.Adapters.Sql.AdapterInboundHandler.TryReceive(TimeSpan timeout, Message& message, IInboundReply& reply)
itt: Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive(TimeSpan timeout, Message& message)
itt: System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive(TimeSpan timeout, RequestContext& requestContext)
itt: System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive(TimeSpan timeout, RequestContext& requestContext)""."
2. figyelmeztetés
Megjegyzés
"The adapter ""WCF-SQL"" hibaüzenetet küldött. Részletek ""System.TimeoutException: A "System.TimeoutException" típusú kivétel el lett dobva.
itt: Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
itt: Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar(SqlCommand, sqlCommand, TimeoutHelper timeoutHelper)
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage(TimeoutHelper timeoutHelper)
itt: Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage(TimeSpan timeout)
itt: Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
itt: System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage(TimeSpan timeout)
itt: System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()""."
WCF-Oracle adapter
1. figyelmeztetés
Megjegyzés
A "WCF-Oracle" adapter hibaüzenetet küldött. Részletek "Microsoft.ServiceModel.Channels.Common.ConnectionException: The timeout "00:02:00" expired when running the "WaitForMessage". ---> System.TimeoutException: A "00:02:00" időtúllépés lejárt a "WaitForMessage" függvény végrehajtásakor.
itt: Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
itt: Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout(OracleCommand command, TimeoutHelper timeoutHelper)
itt: Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery(OracleCommand command, OracleCommonExecutionHelper executionHelper)
itt: Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)
--- A belső kivétel veremkövetési --- vége
itt: Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage(OracleCommonExecutionHelper executionHelper)
itt: Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage(TimeSpan timeout)
itt: Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
itt: System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage(TimeSpan timeout)
itt: System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()".
2. figyelmeztetés
Megjegyzés
A "WCF-Oracle" adapter hibaüzenetet küldött. Részletek "System.TimeoutException: A "00:02:00" időkorlát lejárt a "WaitForMessage" függvény végrehajtása közben.
itt: Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
itt: Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout(OracleCommand command, TimeoutHelper timeoutHelper)
itt: Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar(OracleCommand command, OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage(OracleCommonExecutionHelper executionHelper, OracleCommonConnectionWrapper connection)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage(OracleCommonExecutionHelper executionHelper)
itt: Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage(TimeSpan timeout)
itt: Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
itt: System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage(TimeSpan timeout)
itt: System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()".
Ok
A probléma oka, hogy a fogadási hely váratlanul újraindult, amikor a WaitForMessage metódus TimeoutException kivételt generált.
Amikor a WaitForMessage metódus TimeoutException kivételt hoz létre, a rendszer a TryReceive metódust hívja meg, majd a WCF-SQL-adapter vagy a WCF-Oracle adapter visszavonja a tranzakciót. A visszaállítási művelet azonban létrehozhat egy ObjectDisposedException kivételt. Ezért a "Jelenségek" részben említett figyelmeztetések egyike jön létre.
Megoldás
Összegző frissítéssel kapcsolatos információk
A BizTalk Adapter Pack 2010 esetében
A problémát elhárító gyorsjavítás megtalálható a BizTalk Adapter Pack 2010 2-es összegző frissítőcsomagjában. Az összegző frissítési csomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:
2572999 2-es összegző frissítőcsomag a BizTalk Adapter Pack 2010-hez
BizTalk Adapter Pack 2.0 esetén
A problémát elhárító gyorsjavítás megtalálható a BizTalk Adapter Pack 2.0 3. összegző frissítőcsomagjában.
Az összegző frissítési csomag beszerzéséről a Microsoft Tudásbázis alábbi cikkében tájékozódhat:
2557150 3. összegző frissítőcsomag a BizTalk Adapter Pack 2.0-hoz
Megjegyzés: Ez a gyorsjavítás hozzáadja a <WCF-nyomkövetési fájlhoz (.svcLog) szükséges TraceIdentifier> és </TraceIdentifier> címkéket. Miután a gyorsjavítás hozzáadta ezeket a címkéket, a rendszer kijavítja a nyomkövetési fájlok kimenetét, és a szolgáltatás-nyomkövetési megjelenítő (SvcTraceViewer.exe) eszköz gyorsabban megnyitja a nagy WCF-nyomkövetési fájlokat.
A gyorsjavítás alkalmazása előtt a következő ::Exit nyomkövetésekből hiányzik a <TraceIdentifier> és <a /TraceIdentifier> címke:
<Leírás>ExecuteNonQuery::Exit</Description>
<Leírás>OpenConnection::Exit</Description>
<Leírás>ExecuteScalar::Exit</Description>
<Leírás>Polling_WaitForMessage::Exit</Leírás>
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.
További információ
Az IInputChannel.WaitForMessage metódusról az MSDN alábbi webhelyén talál további információt:
Általános információk az IInputChannel.WaitForMessage metódusról Az IInputChannel.TryReceive metódusról az MSDN alábbi webhelyén talál további információt:
Általános információk az IInputChannel.TryReceive metódusról A BizTalk Server gyorsjavításairól a Microsoft Tudásbázis alábbi cikkében tájékozódhat:
2003907 Információ a BizTalk Server gyorsjavításokról