Friday, 17 February 2017

FILE adapter: The Messaging Engine failed while notifying an adapter of its configuration

While using File Adapter to connect a file location (local or Network share) you may encounter errors like below:

" The Messaging Engine failed to add a receive location "Receive Location1" with URL "\\Server\Folder\File" to the adapter "FILE". Reason: "File transport does not have read/write privileges for receive location "\\Server\Folder\". "."

"File transport does not have read/write privileges for receive location "\\Server\Folder\"."

"The receive location "Receive Location1" with URL "\\Server\Folder\File" is shutting down. Details:"The Messaging Engine failed while notifying an adapter of its configuration. "."


Resolution:


1) Please double, triple check that the account which is used in the host instance has required permissions to access to folder location. In your case, permission for the host instance/service account seems to be the issue. Then if you're confident that service account has all the permission to access the folders. Then go to point 2.

2) Check if there is any network issue between your Biztalk server and file location. Get your network team involved and they can confirm this by opening a network trace.

3) IF you are confident that service account has all the permission to access the folders and you're also confident that their is no network issue between your Biztalk server (where the problematic host instance is configured) and file location.

Then another possible case is, number of received location bound to the problematic host instance. Can you check whether the host instance in question is bound to more than 50 Receive location. If so, then its worth checking the MaxCmds and MaxMpxCt registry values. Refer these articles:

Thursday, 16 February 2017

Issue while connecting On Premise BizTalk Server to Azure SQL DB

While trying to connect On-Promise BizTalk Server to Azure SQL database you may encounter an error message like below:

The adapter failed to transmit message going to send port "xxxxxxxxx" with URL "mssql://xxxxxxxxxxx". It will be retransmitted after the retry interval specified for this Send Port. Details:"System.ArgumentException: Value does not fall within the expected range.


Resolution:


Please make sure that on your WCF-Custom send port Transport Properties under Binding Tab you have the properties; EnableBizTalkCompatibilityMode set to true and AmbientTransaction setting set to false. The latter needs to be false as with true the local transaction will be escalated to Microsoft Distributed Coordinator (MSDTC).  According Handling Transactions in Windows Azure SQL Database written by Wayne Walter Berry:

Windows Azure SQL Database SQL Database does not support distributed transactions, which are transactions that multiple transaction managers (multiple resources). This means that Windows Azure SQL Database SQL doesn’t allow Microsoft Distributed Transaction Coordinator (MSDTC) to delegate distributed transaction handling. Because of this you can’t use ADO.NET or MSDTC to commit or rollback a single transaction that spans across multiple Windows Azure SQL Databases or a combination of Windows Azure SQL Database and an on-premise SQL Server.

Hope this helps!