Sign in with Microsoft
Sign in or create an account.
Hello,
Select a different account.
You have multiple accounts
Choose the account you want to sign in with.

This article applies to the following product:

  • BizTalk Adapter Pack 2.0

  • BizTalk Adapter Pack 2010

Symptoms

When you use one of the following adapters that are included in Microsoft BizTalk Adapter Pack 2.0 or in Microsoft BizTalk Adapter Pack 2010 on a receive location, the receive location restarts unexpectedly:

  • The Windows Communication Foundation (WCF)-SQL adapter

  • The WCF-Oracle adapter


Additionally, BizTalk Server may encounter the ConnectionException exception, and then the BizTalk server may restart after one of the following warnings is logged in the Application log.

WCF-SQL adapter

Warning 1

"The adapter ""WCF-SQL"" raised an error message. Details ""System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'Transaction'.
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)""."

Warning 2

"The adapter ""WCF-SQL"" raised an error message. Details ""System.TimeoutException: Exception of type 'System.TimeoutException' was thrown.
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 adapter

Warning 1

The adapter "WCF-Oracle" raised an error message. Details "Microsoft.ServiceModel.Channels.Common.ConnectionException: The timeout "00:02:00" expired while executing the function "WaitForMessage". ---> System.TimeoutException: The timeout "00:02:00" expired while executing the function "WaitForMessage".
at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout(OracleCommand command, TimeoutHelper timeoutHelper)
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.ExecuteNonQuery(OracleCommand command, OracleCommonExecutionHelper executionHelper)
at Microsoft.Adapters.OracleDB.OracleDBConnection.OpenConnection(OracleCommonExecutionHelper executionHelper)
--- End of inner exception stack trace ---
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()".

Warning 2

The adapter "WCF-Oracle" raised an error message. Details "System.TimeoutException: The timeout "00:02:00" expired while executing the function "WaitForMessage".
at Microsoft.Adapters.AdapterUtilities.TimeoutHelper.GetRemainingTimeoutAndThrowDefaultExceptionMessageIfExpired()
at Microsoft.Adapters.OracleCommon.OracleCommonUtils.SetCommandTimeout(OracleCommand command, TimeoutHelper timeoutHelper)
at 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)
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()".


Cause

This issue occurs because the receive location restarts unexpectedly when the WaitForMessage method generates a TimeoutException exception.

When the WaitForMessage method generates a TimeoutException exception, the TryReceive method is called, and then the WCF-SQL adapter or the WCF-Oracle adapter rolls back the transaction. However, the rollback operation may generate an ObjectDisposedException exception. Therefore, one of the warnings that are mentioned in the "Symptoms" section is generated.

Resolution

Cumulative update information

For BizTalk Adapter Pack 2010

The hotfix that resolves this issue is included in cumulative update package 2 for BizTalk Adapter Pack 2010. For more information about how to obtain this cumulative update package, click the following article number to view the article in the Microsoft Knowledge Base:


2572999Cumulative update package 2 for BizTalk Adapter Pack 2010

For BizTalk Adapter Pack 2.0

The hotfix that resolves this issue is included in cumulative update package 3 for BizTalk Adapter Pack 2.0.

For more information about how to obtain the cumulative update package, click the following article number to view the article in the Microsoft Knowledge Base:

2557150 Cumulative update package 3 for BizTalk Adapter Pack 2.0

Note This hotfix adds the <TraceIdentifier> and </TraceIdentifier> tags that are required in the WCF tracing file (.svcLog). After the hotfix adds these tags, the output in the trace files is corrected, and Service Trace Viewer Tool (SvcTraceViewer.exe) opens large WCF tracing files more quickly.

The following ::Exit traces lack the <TraceIdentifier> and </TraceIdentifier> tags before you apply this hotfix:

<Description>ExecuteNonQuery::Exit</Description>

<Description>OpenConnection::Exit</Description>

<Description>ExecuteScalar::Exit</Description>

<Description>Polling_WaitForMessage::Exit</Description>


Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

More Information

For more information about the IInputChannel.WaitForMessage method, visit the following MSDN website:

General information about the IInputChannel.WaitForMessage methodFor more information about the IInputChannel.TryReceive method, visit the following MSDN website:

General information about the IInputChannel.TryReceive methodFor more information about BizTalk Server hotfixes, click the following article number to view the article in the Microsoft Knowledge Base:

2003907 Information about BizTalk Server hotfixes

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

Was this information helpful?

What affected your experience?
By pressing submit, your feedback will be used to improve Microsoft products and services. Your IT admin will be able to collect this data. Privacy Statement.

Thank you for your feedback!

×