Bài viết này áp dụng cho các sản phẩm sau:
-
BizTalk Adapter gói 2.0
-
BizTalk Adapter Pack 2010
Triệu chứng
Khi bạn sử dụng một trong các bộ điều hợp sau được bao gồm trong Microsoft BizTalk Adapter gói 2.0 hoặc trong Microsoft BizTalk Adapter Pack 2010 trên một vị trí nhận, nhận vị trí khởi động lại đột ngột:
-
Windows Communication Foundation (WCF)-bộ điều hợp SQL
-
Bộ điều hợp WCF Oracle
Ngoài ra, BizTalk Server có thể gặp phải trường hợp ngoại lệ ConnectionException , và sau đó BizTalk server có thể khởi động lại sau một cảnh báo sau được ghi vào Nhật ký ứng dụng.
Bộ điều hợp WCF SQL
Cảnh báo 1
"Hợp""WCF-SQL" "đưa ra thông báo lỗi. Chi tiết "" System.ObjectDisposedException: không thể truy cập vào một đối tượng xử lý. Tên đối tượng: 'Giao dịch' tại System.Transactions.Transaction.Rollback (Exception e) tại Microsoft.Adapters.Sql.SqlAdapterInboundHandler.TryReceive (thời gian, thông báo và thông báo IInboundReply & trả lời) tại Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.TryReceive (thời gian, thông báo và thông báo) tại System.ServiceModel.Dispatcher.InputChannelBinder.TryReceive (thời gian, RequestContext & requestContext) tại System.ServiceModel.Dispatcher.ErrorHandlingReceiver.TryReceive (thời gian, RequestContext & requestContext) "". "
Cảnh báo 2
"Hợp""WCF-SQL" "đưa ra thông báo lỗi. Chi tiết "" System.TimeoutException: ngoại lệ loại 'System.TimeoutException' là thrown.at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired () ở Microsoft.Adapters.Sql.ExecutionHelper.ExecuteScalar (SqlCommand sqlCommand, TimeoutHelper timeoutHelper) tại Microsoft.Adapters.Sql.SqlAdapterInboundHandler.Polling_WaitForMessage (TimeoutHelper timeoutHelper) tại Microsoft.Adapters.Sql.SqlAdapterInboundHandler.WaitForMessage (thời gian chờ TimeSpan) tại Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (thời gian chờ TimeSpan) tại System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (thời gian chờ TimeSpan) ở System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage()"". "
Bộ điều hợp WCF Oracle
Cảnh báo 1
Bộ điều hợp "WCF-Oracle" đưa ra thông báo lỗi. Chi tiết "Microsoft.ServiceModel.Channels.Common.ConnectionException: thời gian chờ" 00: 02:00 "hết hạn trong khi thực hiện chức năng"WaitForMessage". ---> System.TimeoutException: thời gian chờ "00: 02:00" hết hạn trong khi thực hiện chức năng "WaitForMessage". tại Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() tại Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (OracleCommand lệnh TimeoutHelper timeoutHelper) tại Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery (OracleCommand lệnh, OracleCommonExecutionHelper executionHelper) tại Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection ( OracleCommonExecutionHelper executionHelper)---cuối của dấu vết xếp chồng ngoại lệ bên trong---tại Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection (OracleCommonExecutionHelper executionHelper) tại Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) tại Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (thời gian chờ TimeSpan) tại Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (thời gian chờ TimeSpan) tại System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (thời gian chờ TimeSpan) tại System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Cảnh báo 2
Bộ điều hợp "WCF-Oracle" đưa ra thông báo lỗi. Chi tiết "System.TimeoutException: thời gian chờ" 00: 02:00 "hết hạn trong khi thực hiện chức năng"WaitForMessage". tại Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired() tại Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout (OracleCommand lệnh TimeoutHelper timeoutHelper) tại Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteScalar (OracleCommand lệnh, OracleCommonExecutionHelper executionHelper) tại Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage ( OracleCommonExecutionHelper executionHelper, kết nối OracleCommonConnectionWrapper) tại Microsoft.Adapters.OracleDB.OracleDBInboundContract.Polling_WaitForMessage (OracleCommonExecutionHelper executionHelper) tại Microsoft.Adapters.OracleDB.OracleDBInboundContract.WaitForMessage (thời gian chờ TimeSpan) tại Microsoft.ServiceModel.Channels.Common.Channels.AdapterInputChannel.WaitForMessage (thời gian chờ TimeSpan) tại System.ServiceModel.Dispatcher.InputChannelBinder.WaitForMessage (thời gian chờ TimeSpan) tại System.ServiceModel.Dispatcher.ErrorHandlingReceiver.WaitForMessage() ".
Nguyên nhân
Sự cố này xảy ra vì vị trí nhận khởi động lại đột ngột khi phương pháp WaitForMessage tạo ra một ngoại lệ TimeoutException . Khi phương pháp WaitForMessage tạo ra một ngoại lệ TimeoutException , phương pháp TryReceive được gọi là và sau đó bộ điều hợp WCF SQL hoặc bộ điều hợp WCF Oracle cuộn lại giao dịch. Tuy nhiên, việc quay lui có thể tạo ra một ngoại lệ ObjectDisposedException . Do đó, một cảnh báo được đề cập trong phần "Triệu chứng" được tạo ra.
Giải pháp
Thông tin Cập Nhật tích luỹ
Bộ điều hợp BizTalk gói 2010
Hotfix giải quyết vấn đề này được bao gồm trong gói Cập Nhật tích luỹ 2 BizTalk Adapter Pack 2010. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ này, bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:2572999gói Cập Nhật tích luỹ 2 BizTalk Adapter Pack 2010
Bộ điều hợp BizTalk gói 2.0
Hotfix giải quyết vấn đề này được bao gồm trong gói Cập Nhật tích lũy 3 cho BizTalk Adapter gói 2.0. Để biết thêm thông tin về cách lấy gói Cập Nhật tích luỹ, bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2557150 Gói Cập Nhật tích lũy 3 cho BizTalk Adapter gói 2.0Lưu ý Hotfix này thêm < TraceIdentifier > và < / TraceIdentifier > thẻ được yêu cầu trong tệp theo dõi WCF (.svcLog). Sau khi Cập Nhật nóng thêm các thẻ, kết quả trong tệp theo dõi được khắc phục và công cụ xem theo dõi dịch vụ (SvcTraceViewer.exe) mở tệp theo dõi WCF lớn nhanh hơn. Sau :: thoát dấu vết thiếu < TraceIdentifier > và < / TraceIdentifier > thẻ trước khi bạn áp dụng hotfix này: < mô tả > ExecuteNonQuery::Exit < / mô tả >< mô tả > OpenConnection::Exit < / mô tả >< ExecuteScalar::Exit mô tả > < / mô tả >< Polling_WaitForMessage::Exit mô tả > < / mô tả >
Trạng thái
Microsoft đã xác nhận đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Thông tin Bổ sung
Để biết thêm thông tin về phương pháp IInputChannel.WaitForMessage , ghé thăm website sau của MSDN:
Thông tin chung về phương pháp IInputChannel.WaitForMessageĐể biết thêm thông tin về phương pháp IInputChannel.TryReceive , ghé thăm website sau của MSDN:
Thông tin chung về phương pháp IInputChannel.TryReceiveĐể biết thêm thông tin về BizTalk Server hotfix, hãy bấm vào số bài viết sau để xem bài viết trong cơ sở kiến thức Microsoft:
2003907 Thông tin về BizTalk Server hotfix