Bu makale aşağıdaki ürün için geçerlidir:
- BizTalk Adapter Pack 2.0
- BizTalk Adapter Pack 2010
Belirtiler
Bir alma konumunda Microsoft BizTalk Adapter Pack 2.0 veya Microsoft BizTalk Adapter Pack 2010'da bulunan aşağıdaki bağdaştırıcılardan birini kullandığınızda, alma konumu beklenmedik bir şekilde yeniden başlatılıyor:
- Windows Communication Foundation (WCF)-SQL bağdaştırıcısı
- WCF-Oracle bağdaştırıcısı
Ayrıca, BizTalk Server ConnectionException özel durumuyla karşılaşabilir ve Uygulama günlüğüne aşağıdaki uyarılardan biri kaydedildikten sonra BizTalk sunucusu yeniden başlatılabilir.
WCF-SQL bağdaştırıcısı
Uyarı 1
Not
""WCF-SQL"" bağdaştırıcısı bir hata iletisi oluşturdu. Ayrıntılar ""System.ObjectDisposedException: Bırakılan bir nesneye erişilemiyor.
Nesne adı: 'İşlem'.
at System.Transactions.Transaction.Rollback(Exception e)
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive(TimeSpan timeout, Message& message, IInboundReply& reply)
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive(TimeSpan timeout, Message& message)
at System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive(TimeSpan timeout, RequestContext& requestContext)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive(TimeSpan timeout, RequestContext& requestContext)""."
Uyarı 2
Not
""WCF-SQL"" bağdaştırıcısı bir hata iletisi oluşturdu. Ayrıntılar ""System.TimeoutException: 'System.TimeoutException' türü özel durumu oluşturuldu.
at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
at Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar(SqlCommand sqlCommand, TimeoutHelper timeoutHelper)
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage(TimeoutHelper, timeoutHelper)
at Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage(TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()""."
WCF-Oracle bağdaştırıcı
Uyarı 1
Not
"WCF-Oracle" bağdaştırıcısı bir hata iletisi oluşturdu. Ayrıntılar "Microsoft.ServiceModel.Channels.Common.ConnectionException: "WaitForMessage" işlevi yürütülürken "00:02:00" zaman aşımı süresi doldu.
>--- System.TimeoutException: "WaitForMessage" işlevi yürütülürken "00:02:00" zaman aşımı süresi doldu.
at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout(OracleCommand komutu, TimeoutHelper, timeoutHelper)
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery(OracleCommand komutu, OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)
--- İç özel durum yığın izlemesinin sonu ---
at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage(OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage(TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()".
Uyarı 2
Not
"WCF-Oracle" bağdaştırıcısı bir hata iletisi oluşturdu. Ayrıntılar "System.TimeoutException: "WaitForMessage" işlevi yürütülürken "00:02:00" zaman aşımı süresi doldu.
at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout(OracleCommand komutu, TimeoutHelper, timeoutHelper)
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar(OracleCommand komutu, OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage(OracleCommonExecutionHelper executionHelper, OracleCommonConnectionWrapper connection)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage(OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage(TimeSpan timeout)
at Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage(TimeSpan timeout)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()".
Neden
Bu sorun, WaitForMessage yöntemi bir TimeoutException özel durumu oluşturduğunda alma konumunun beklenmedik bir şekilde yeniden başlatılması nedeniyle oluşur.
WaitForMessage yöntemi bir TimeoutException özel durumu oluşturduğunda, TryReceive yöntemi çağrılır ve ardından WCF-SQL bağdaştırıcısı veya WCF-Oracle bağdaştırıcısı işlemi geri alır. Ancak, geri alma işlemi bir ObjectDisposedException özel durumu oluşturabilir. Bu nedenle, "Belirtiler" bölümünde belirtilen uyarılardan biri oluşturulur.
Çözüm
Toplu güncelleştirme bilgileri
For BizTalk Adapter Pack 2010
Bu sorunu çözen düzeltme, BizTalk Adapter Pack 2010 için toplu güncelleştirme paketi 2'de bulunur. Bu toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2572999 BizTalk Adapter Pack 2010 için toplu güncelleştirme paketi 2
For BizTalk Adapter Pack 2.0
Bu sorunu çözen düzeltme, BizTalk Adapter Pack 2.0 için toplu güncelleştirme paketi 3'e dahil edilmiştir.
Toplu güncelleştirme paketini edinme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2557150 BizTalk Adapter Pack 2.0 için toplu güncelleştirme paketi 3
Not: Bu düzeltme, <WCF izleme dosyasında (.svcLog) gerekli olan TraceIdentifier> ve </TraceIdentifier> etiketlerini ekler. Düzeltme bu etiketleri ekledikten sonra, izleme dosyalarındaki çıkış düzeltilir ve Hizmet İzleme Görüntüleyicisi Aracı (SvcTraceViewer.exe) büyük WCF izleme dosyalarını daha hızlı açar.
Bu düzeltmeyi <uygulamadan önce aşağıdaki ::çıkış izlemelerinde TraceIdentifier> ve </TraceIdentifier> etiketleri bulunmuyordu:
<Description>ExecuteNonQuery::Exit</Description>
<Description>OpenConnection::Exit</Description>
<Description>ExecuteScalar::Exit</Description>
<Description>Polling_WaitForMessage::Exit</Description>
Durum
Microsoft bunun, "Şunlar için geçerlidir" bölümünde listelenen Microsoft ürünlerinde sorun olduğunu doğrulamıştır.
Daha Fazla Bilgi
IInputChannel.WaitForMessage yöntemi hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
IInputChannel.WaitForMessage yöntemi hakkında genel bilgiler IInputChannel.TryReceive yöntemi hakkında daha fazla bilgi için aşağıdaki MSDN web sitesini ziyaret edin:
IInputChannel.TryReceive yöntemi hakkında genel bilgiler BizTalk Server düzeltmeler hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:
2003907 BizTalk Server düzeltmeleri hakkında bilgi