Artikel ini berlaku untuk produk berikut:
-
Adapter BizTalk paket 2.0
-
Adapter BizTalk paket 2010
Gejala
Ketika Anda menggunakan salah satu dari berikut adaptor yang disertakan dalam Microsoft BizTalk Adapter paket 2.0 atau Microsoft BizTalk Adapter paket 2010 di lokasi terima, terima lokasi tiba-tiba restart:
-
Dasar komunikasi Windows (WCF)-SQL adapter
-
Adapter WCF Oracle
Selain itu, BizTalk Server mungkin mengalami ConnectionException pengecualian, dan kemudian BizTalk server dapat me-restart setelah salah satu dari peringatan berikut dicatat di log aplikasi.
Adapter WCF-SQL
Peringatan 1
"" "WCF-SQL" "adaptor mengangkat pesan galat. Rincian "" System.ObjectDisposedException: tidak dapat mengakses objek dibuang. Nama objek: 'Transaksi'.at System.Transactions.Transaction.Rollback (Exception e) di Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (TimeSpan timeout, pesan & pesan, IInboundReply & Balasan) di Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (TimeSpan timeout, pesan & pesan) di System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (TimeSpan timeout, RequestContext & requestContext) di System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (TimeSpan timeout, RequestContext & requestContext) "". "
Peringatan 2
"" "WCF-SQL" "adaptor mengangkat pesan galat. Rincian "" System.TimeoutException: pengecualian jenis 'System.TimeoutException' adalah thrown.at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired (-) pada Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) di Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) di Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (TimeSpan timeout) di Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) di System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) di System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "
Adapter WCF Oracle
Peringatan 1
Adaptor "WCF-Oracle" mengangkat pesan galat. Rincian "Microsoft.ServiceModel.Channels.Common.ConnectionException: batas waktu" 00: 02:00 "kedaluwarsa saat menjalankan fungsi"WaitForMessage". ---> System.TimeoutException: batas waktu "00: 02:00" kedaluwarsa saat menjalankan fungsi "WaitForMessage". di Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() di Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (perintah OracleCommand, TimeoutHelper timeoutHelper) di Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (perintah OracleCommand, OracleCommonExecutionHelper executionHelper) di Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection () OracleCommonExecutionHelper executionHelper)---akhir jejak tumpukan pengecualian bagian dalam---di Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper) di Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) di Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) di Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) di System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) di System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Peringatan 2
Adaptor "WCF-Oracle" mengangkat pesan galat. Rincian "System.TimeoutException: batas waktu" 00: 02:00 "kedaluwarsa saat menjalankan fungsi"WaitForMessage". di Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() di Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (perintah OracleCommand, TimeoutHelper timeoutHelper) di Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (perintah OracleCommand, OracleCommonExecutionHelper executionHelper) di Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage () OracleCommonExecutionHelper executionHelper, sambungan OracleCommonConnectionWrapper) di Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) di Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (TimeSpan timeout) di Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (TimeSpan timeout) di System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (TimeSpan timeout) di System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Penyebab
Masalah ini terjadi karena terima lokasi tiba-tiba restart saat metode WaitForMessage menghasilkan pengecualian TimeoutException . Apabila metode WaitForMessage menghasilkan pengecualian TimeoutException , metode TryReceive disebut, dan kemudian adapter WCF-SQL atau adapter WCF Oracle gulung kembali transaksi. Namun, operasi rollback akan menghasilkan pengecualian ObjectDisposedException . Oleh karena itu, salah satu dari peringatan yang disebutkan di bagian "gejala" akan dibuat.
Pemecahan Masalah
Informasi pembaruan kumulatif
Adapter BizTalk paket 2010
Perbaikan terbaru yang dapat memecahkan masalah ini disertakan dalam paket pemutakhiran kumulatif 2 untuk BizTalk Adapter Pack 2010. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif ini, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:2572999paket pemutakhiran kumulatif 2 untuk BizTalk Adapter paket 2010
Adapter BizTalk paket 2.0
Perbaikan terbaru yang dapat memecahkan masalah ini disertakan dalam paket pemutakhiran kumulatif 3 untuk BizTalk Adapter paket 2.0. Untuk informasi selengkapnya tentang cara mendapatkan paket pembaruan kumulatif, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2557150 Paket pembaruan kumulatif 3 untuk 2.0 paket Adapter BizTalkCatatan Hotfix ini menambahkan < TraceIdentifier > dan < / TraceIdentifier > tag yang diperlukan dalam berkas pelacakan WCF (.svcLog). Setelah hotfix menambahkan tag, output dalam berkas jejak diperbaiki, dan alat penampil jejak Layanan (SvcTraceViewer.exe) membuka file pelacakan WCF besar dengan lebih cepat. Berikut ini :: keluar jejak kekurangan < TraceIdentifier > dan < / TraceIdentifier > tag sebelum Anda menerapkan perbaikan terbaru ini: < Deskripsi > ExecuteNonQuery::Exit < / Deskripsi >< Deskripsi > OpenConnection::Exit < / Deskripsi >< ExecuteScalar::Exit Deskripsi > < / Deskripsi >< Polling_WaitForMessage::Exit Deskripsi > < / Deskripsi >
Status
Microsoft telah melakukan konfirmasi bahwa masalah ini timbul pada produk Microsoft yang tertera pada bagian "Berlaku untuk".
Informasi Selengkapnya
Untuk informasi selengkapnya tentang metode IInputChannel.WaitForMessage , kunjungi website MSDN berikut:
Informasi umum tentang metode IInputChannel.WaitForMessageUntuk informasi selengkapnya tentang metode IInputChannel.TryReceive , kunjungi website MSDN berikut:
Informasi umum tentang metode IInputChannel.TryReceiveUntuk informasi lebih lanjut tentang perbaikan terbaru BizTalk Server, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan Microsoft:
2003907 Informasi tentang perbaikan terbaru BizTalk Server