Tuesday, December 01, 2009

Orchestration designer – errors exist for one or more children

Sometimes life is just cruel; you receive an error, search for the cause and are utterly frustrated when you can find the reason. I recently had a visit from this ‘good’ friend of mine: ‘Errors exist for one or more children’

Apparently it is possible that during compilation time an error occurs, and even though you solve it, the error will still occur. The error that can occur is shown in the picture below:

 orchestration_errorExists_buildmsg

What i did to solve this bugger….

- open the ODX file in Notepad (important if you do not want to meet your friend encoding mismatch)

- search for ‘#error’ (should be in the XLANG body() {…} )

- remove the line (shown in the screenshot below)

orchestration_errorExists_odx

 

This worked for me, sincerely hoping that you will not use this, if so hoping that you can take the advantage of this post….

[BizTalk 2006 R2 Exception handling trick] #2 Catching the XLANGPipelineManagerException

Another item that is open for discussion is when to use a pipeline inside an orchestration. Whatever your opinion of using pipelines inside your orchestration is, please keep in mind that when any exception occurs in the pipeline, you want to catch the:

Microsoft.XLANGs.Pipeline.XLANGPipelineManagerException!

“Any failure in pipeline execution which would have resulted in a suspended message were this pipeline to be called from within the BizTalk Server Messaging Infrastructure will instead result in an exception being thrown. The exception thrown is of type Microsoft.XLANGs.Pipeline.XLANGPipelineManagerException. This thrown exception can be handled in a catch block within the calling orchestration. If the orchestration does not catch the thrown exception, the XLANGs engine reports an error the text of which includes the exception information in the thrown exception.”

Ref: http://msdn.microsoft.com/en-us/library/aa562035(BTS.10).aspx

[BizTalk 2006 R2 Exception handling trick] #1 Runtime Validation for the Orchestration Engine

I have recently taken the BizTalk 2006 R2 exam and came across some interesting stuff;

- Runtime validation

With this it is possible to force runtime validation for assemblies/correlations/schemas etc ensuring that everything is correctly deployed!

See: http://msdn.microsoft.com/en-us/library/aa561963(BTS.10).aspx