Find out which timeout is causing your transmission failure

One of the more common BizTalk connection problems to end systems is a timeout. Maybe you are dealing with an unexpected spike in data, or perhaps your connection is just a bit lethargic today.

No problem, just extend the timeout, right? Errm… which one? If you look at the port bindings, you can see there are often several timeouts. Without knowing the details of how the adapter works, it may be unclear which one you need.

Here’s how you figure it out.
Continue reading “Find out which timeout is causing your transmission failure”

Using custom XSLT for BizTalk maps

By default, you define your message transformations in BizTalk using the BizTalk Mapper, a unique tool which uses connectors and “functoids” to construct your logic.

The mapper is quite powerful, but is another mechanism that has to be learned carefully. Beyond the basics, it’s not very intuitive and doesn’t always work the way you might guess. It can also quickly look very messy if you aren’t careful, or don’t make good use of the tabbing feature.

If the mapper isn’t right for you, there’s another option: Custom XSLT. Here’s how to set it up.

Continue reading “Using custom XSLT for BizTalk maps”

BizTalkDTADb tracking database

BizTalk administrators often rely on tracking data, which shows you past events that happened in BizTalk. Querying this information through the BizTalk Administration Console can be quite slow if you have a large tracking database, and also has a learning curve before you can construct the right queries.

Fortunately, many of these queries just return data from BizTalkDTADb, the BizTalk tracking database, which isn’t too hard to understand for yourself. Here are some ways to write your own queries to get the tracking information you need.

Continue reading “BizTalkDTADb tracking database”

Tracking in BizTalk

Getting your Tracking settings right in BizTalk is a balancing act, and especially for Production. All too often, tracking won’t get proper consideration until your integrations have been live for a while, and you start to hit a few problems as your tracking database grows larger. Here I’ll talk through the main factors that affect your tracking database, and offer some useful approaches to getting your tracking in order.

Continue reading “Tracking in BizTalk”

WCF-SQL System.NullReferenceException: Object reference not set to an instance of an object

I recently got an unhelpful null reference error in a BizTalk WCF-SQL port, while attempting to connect to an Azure database.

System.NullReferenceException: Object reference not set to an instance of an object

Continue reading “WCF-SQL System.NullReferenceException: Object reference not set to an instance of an object”

System.ArgumentNullException: Value cannot be null. Parameter name: key

Many of the in-built BizTalk adapters used WCF, including connections to Microsoft SQL Server, Oracle databases, and web services. BizTalk is very strict about supplying a SOAP Action header, and if you forget to specify it in the send port, you will get this particularly unhelpful error:

System.ArgumentNullException: Value cannot be null.
Parameter name: key

Continue reading “System.ArgumentNullException: Value cannot be null. Parameter name: key”

Testing BizTalk WCF End Points with Anonymous Authentication

Sometimes, because my life’s so exciting, I need to test an HTTP push into my local dev instance of BizTalk. In other words, I have a one-way receive port ready to consume an XML message into BizTalk through a WCF web service. The web service IIS components and schemas have been generated through BizTalk WCF Service Publishing Wizard and deployed. Now I just want to try a local HTTP push of a sample message and ensure BizTalk picks it up.
Continue reading “Testing BizTalk WCF End Points with Anonymous Authentication”

System.Transactions.TransactionException: The operation is not valid for the state of the transaction. —> System.TimeoutException: Transaction Timeout

If a BizTalk process is connecting to a database and it takes a very long time (more than about 10 minutes), you might encounter this error:

System.Transactions.TransactionException: The operation is not valid for the state of the transaction. ---> System.TimeoutException: Transaction Timeout

Continue reading “System.Transactions.TransactionException: The operation is not valid for the state of the transaction. —> System.TimeoutException: Transaction Timeout”