I've been spelunking a bit the last couple of days digging again into BizTalk Adapters, and one of the things that can be pretty frustrating is trying to lookup what the HRESULT codes returned by the BizTalk Messaging Engine when batch operations fail mean. Usually this involves digging around using Reflector until you stump into the constants having some of the error codes in them.

I was a bit fed up with this, so I ended up writing BtsErrorLookup. This is a simple command line utility that will take an HRESULT code (in hex format) and print out all known interpretations for that value. For now, it has all the HRESULT constants in BizTalk 2006 I found from the transport proxy, xml validator component and all assembler/disassemblers.

Here's an example run:

NEWTON> BtsErrorLookup.exe 0xc0c01463
0xc0c01463: BtsErrorDisassemblerCannotGetDocspecByName (Xml Disassembler Component)
0xc0c01463: BtsErrorDisassemblerCannotLoadDocspecByName (Flat File Disassembler Component)
0xc0c01463: BTS_E_DISASSEMBLER_CANNOT_GET_DOCSPEC_BY_NAME (BTF Disassembler Component)

NEWTON> BtsErrorLookup.exe 0xC0C0162E
0xc0c0162e: BTS_E_NO_BACKUP_TRANSPORT (Transport Proxy)

Be aware that there are a lot of undocumented HRESULT codes that it will not find, but if anyone knows the meaning of one, ping me and I'll add it to the utility.

Technorati tags:

Tomas Restrepo

Software developer located in Colombia. Sr. PFE at Microsoft.