Ran into a strange one over the last few days. I’ve developed a set of BizTalk 2004 pipeline components and pipelines which write tracking data to a BAM database for analysis and reporting. I implemented send and receive pipelines with these components and tested using a local file send and receive location. All was fine, until I started testing on an HTTP Receive location. All of a sudden I started getting this “Not Implemented” error. My error handling was reporting the error in the Event Log:
and the message was also visible in HAT with the same message. The only additional information in HAT was the error number: 0x80004001:
Armed with this information, I pulled up my trusty browser and gave a Google search. The result? Zip, Nada, Nothing.
So I went back to the drawing board, improved the error handling on the component, tried tracing the pipeline, still no luck!
Eventually I thought I would try something, maybe the Not Implemented error didn’t mean that the error message wasn’t implemented, but that some interface or other wasn’t implemented. So I tried moving my tracking component from the Decode stage in the pipeline to the Disassemble stage, just to see what would happen. This time I got this error:
At least this time I knew for certain that the pipeline component couldn’t live this stage (unless I implemented IDisassemblerComponent anyway). So I dragged to component to the Validate stage (after going through a “Change Send/Receive Port Pipeline, Restart BizTalk, Compile Pipeline, Move To Pipeline Folder, Change Send/Receive Pieline” cycle) and voila’ it worked !!
The funny thing was that I was expecting that my original pipeline, which worked fine under using the File adapter, would work also with HTTP, but maybe there are options on the adapter that try to do something else in the Decode section of the pipeline. So now I know something won’t work, but I still don’t understand why. Anyone have any ideas ?