Getting the most from the BizTalk Management Pack…

A whole raft of whitepapers for BizTalk have been released over the last several weeks
– see here and here.

I completed a
whitepaper a short while back (though just released) on getting the most
out of the BizTalk
2004 Management Pack
and Microsoft Operations
Manager 2005
.  The paper serves as a good reference for the management pack,
but I hope it also serves another useful purpose.  Specifically, the “operational
hand-off” phase of the software development life cycle often gets short
shrift – and it can cost organizations a lot of money, downtime, and late nights. 
So, much of the paper discusses the importance of having a development team accurately
communicate the “instrumentation surface area” of their completed efforts to an operations
team. 

What do I mean by “instrumentation surface area”?  To start, we can consider the
sum of all diagnostic logging, event logging, WMI events, performance counters (custom
or built-in), and all other mechanisms your application uses to communicate
its current operational & health state.  Moreover, we need to capture “interpretations”
of this information stream that are specific to the application.  (Not just “this
send port isn’t working…”
but “We are currently not talking to our primary
shipping provider…”
)  Finally, we need to capture suggested responses
and remediation – also specific to the application.

“Communicated to the operations team”…how exactly?  With a Word doc? 
Well, in particular, I talk about how to do this for a BizTalk-focused solution using
a custom MOM Management Pack that “derives” from the Microsoft-supplied BizTalk 2004
Management Pack.  Done right, this will provide the highest fidelity knowledge
transfer from development to operations.

See what you think – the paper is titled “Advanced
Microsoft BizTalk Server 2004 and Microsoft Operations Manager 2005 Scenarios.”
(What a mouthful…)  

Comment on this post (if you like) with your thoughts on the paper or experience in
this area…

Getting the most from the BizTalk Management Pack…

A whole raft of whitepapers for BizTalk have been released over the last several weeks
– see here and here.

I completed a
whitepaper a short while back (though just released) on getting the most
out of the BizTalk
2004 Management Pack
and Microsoft Operations
Manager 2005
.  The paper serves as a good reference for the management pack,
but I hope it also serves another useful purpose.  Specifically, the “operational
hand-off” phase of the software development life cycle often gets short
shrift – and it can cost organizations a lot of money, downtime, and late nights. 
So, much of the paper discusses the importance of having a development team accurately
communicate the “instrumentation surface area” of their completed efforts to an operations
team. 

What do I mean by “instrumentation surface area”?  To start, we can consider the
sum of all diagnostic logging, event logging, WMI events, performance counters (custom
or built-in), and all other mechanisms your application uses to communicate
its current operational & health state.  Moreover, we need to capture “interpretations”
of this information stream that are specific to the application.  (Not just “this
send port isn’t working…”
but “We are currently not talking to our primary
shipping provider…”
)  Finally, we need to capture suggested responses
and remediation – also specific to the application.

“Communicated to the operations team”…how exactly?  With a Word doc? 
Well, in particular, I talk about how to do this for a BizTalk-focused solution using
a custom MOM Management Pack that “derives” from the Microsoft-supplied BizTalk 2004
Management Pack.  Done right, this will provide the highest fidelity knowledge
transfer from development to operations.

See what you think – the paper is titled “Advanced
Microsoft BizTalk Server 2004 and Microsoft Operations Manager 2005 Scenarios.”
(What a mouthful…)  

Comment on this post (if you like) with your thoughts on the paper or experience in
this area…

TechEd 2005 and DevCon presentations…

TechEd 2005 was a great time, and I really enjoyed the extended look at BizTalk 2006
– lots of great presentations.  Much more has been done in this release than
I had anticipated, and I look forward to digging into the CTP build.

Thanks to those who attended my talk on automating BizTalk application deployments
– the questions asked during the session were great!  It was fun to talk to the
folks who are using the Deployment
Framework stuff…The deck I presented is here. 
BizTalk 2006 is doing a lot to make deployment easier – no comparison to
2004!  I expect a subset of the tools in the Deployment Framework to remain useful
– but that is another post for another day.

If you attended my DevCon 2005 talk on mobility (and even if you didn’t) you
can find the deck available here.  The
talk was specifically on the .NET Compact Framework 2.0 and Sql Server 2005 Mobile
Edition.

TechEd 2005 and DevCon presentations…

TechEd 2005 was a great time, and I really enjoyed the extended look at BizTalk 2006
– lots of great presentations.  Much more has been done in this release than
I had anticipated, and I look forward to digging into the CTP build.

Thanks to those who attended my talk on automating BizTalk application deployments
– the questions asked during the session were great!  It was fun to talk to the
folks who are using the Deployment
Framework stuff…The deck I presented is here. 
BizTalk 2006 is doing a lot to make deployment easier – no comparison to
2004!  I expect a subset of the tools in the Deployment Framework to remain useful
– but that is another post for another day.

If you attended my DevCon 2005 talk on mobility (and even if you didn’t) you
can find the deck available here.  The
talk was specifically on the .NET Compact Framework 2.0 and Sql Server 2005 Mobile
Edition.

Calling A Receive Pipeline Inside an Orchestration in BizTalk 2006

Impresive! from Steve W Thomas:


For starter, why would you want to call a Receive Pipeline from within an Orchestration?  I had to struggle for a bit to come up with a good reason I can find it useful in debatching Scenarios that require mapping prior to debatching or for debatching into smaller batches using a map.  I could also find it useful when working with flat file.


[…]


Super Cool: Supports receiving multiple messages returned from the pipeline and can use enumeration to process each message.


more on his blog

The 11th BizTalk Commandment – Thou shalt not change thy namespaces

Namespaces are sacred changing them could result in chicken sacrificing and other ungodly practices.


 


BizTalk is very xml-centric. If you change a namespace think about what references that schema, map, orchestration pipeline, rules composer vocabulary whose namespace you are about to change.


 


Best practice is to get namespaces right from the start. Look at the msdn’s best practice on standard namespace formats at the beginning of development. This prevents you from having hack a namespace change half way through development.


 


Sounds like common sense.


 


However!!!


 


A good BizTalker should be versioning their schemas via the namespace. Thus namespaces will have to change with new versions of your schemas. Be careful.

How To Call A Receive Pipeline In an Orchestration

With the release of BizTalk 2006 Beta just around the corner, why not get a head start by seeing how to call a Receive Pipeline from within an Orchestration.



For starter, why would you want to call a Receive Pipeline from within an Orchestration?  I had to struggle for a bit to come up with a good reason… I can find it useful in debatching Scenarios that require mapping prior to debatching or for debatching into smaller batches using a map.  I could also find it useful when working with flat file.



Limitations: Calling a Receive Pipeline inside the Orchestration does not support recoverable interchanges (more on this later) and it must be run inside an Atomic Scope.



Super Cool: Supports receiving multiple messages returned from the pipeline and can use enumeration to process each message.



The sample shown below receives a message of type XmlDocument into the Orchestration.  A Receive Pipeline is called to Debatch the message using an Envelope Schema.  A loop shape is used to enumerate over the resulting messages and send each single message.  In addition, references are needed to Microsoft.XLANGs.Pipeline and


Microsoft.BizTalk.Pipeline.




The CallPipeline Expression Shape contains the following line of code:


InputPipeline = Microsoft.XLANGs.Pipeline.


XLANGPipelineManager.ExecuteReceivePipeline


(typeof(CallReceivePipeline.ReceivePipeline),msgFullMessage);



With InputPipeline defined as an Orchestration Variable of type Microsoft.XLANGs.Pipeline.ReceivePipelineOutputMessages



GetEachMessage will loop the collection using MoveNext like this:


InputPipeline.MoveNext()



Finally, the single messages are assigned inside the Message Assignment shape like this:


msgSingle = new System.Xml.XmlDocument();
InputPipeline.GetCurrent(msgSingle);



With msgSingle defined as an Orchestration Message of a specific schema type.



It is that simple!  In about 5 lines of code the Receive Pipeline can be executed inside on Orchestration in BizTalk 2006!



Download: Sample Receive Pipeline in BT2006



Do not forget to view all my other samples at https://www.biztalkgurus.com



Please note this sample is based on pre-beta code (CTP Build) of BizTalk Server 2006.  This may not work on other builds, RTM, etc.



If you do not have Visual Studio 2005 Beta 2 and BizTalk 2006 installed you can still download and view the artifacts (like the Orchestration).  You will not be able to open the project or run the sample. 


 

BizTalk BAM Portal 2006: Activity Search

In a previous post, I described the home page of the new BAM Portal. Today, let’s take a look at the Instance Search feature. The instance search allows you to search BAM data for a particular activity instance:



You can add / remove clauses using the “Add” / “Remove” buttons. You can also build a query and save it locally as an XML file for future use. Opening a query is done by clicking the “Open” button. Let take the Search for a test drive, shall we?



After selecting the business data you would like to see in the column chooser, I am looking for all purchase orders with an amount of $500. There is only one purchase order matching in my system. I can see the details of this activity by clickin on the row of interest:



Users can see all business data associated with this activity instance. Milestones appear sorted from the oldest one to the newest one. Any related document or related activity would appear in their respective sections.


Finally, the “Technical Assistance” can be used to open a technical assistance ticket. The subject / description entered below will be posted to the event log of the server, along with references to engine artifacts (messages / orchestrations) related to this activity.



Tomorow, I’ll show how one can view aggregated data and create alerts when specific condition happen.

Calling a Receive Pipeline Inside an Orchestration

This sample shows how to use a Receive Pipeline inside an Orchestration in BizTalk Server 2006. A loop shape is used to enumerate over the resulting messages and send each single message. This is based on BizTalk Server 2006 CTP Build.

This sample should work with BizTalk 2006 and BizTalk 2006 R2.

Get more information from the original blog post on this topic: https://www.biztalkgurus.com/biztalk_server/biztalk_blogs/b/biztalk/archive/2005/06/16/how-to-call-a-receive-pipeline-in-an-orchestration.aspx

BizTalk BAM Portal 2006: Activity Search

In a previous post, I described the home page of the new BAM Portal. Today, let’s take a look at the Instance Search feature. The instance search allows you to search BAM data for a particular activity instance:



You can add / remove clauses using the “Add” / “Remove” buttons. You can also build a query and save it locally as an XML file for future use. Opening a query is done by clicking the “Open” button. Let take the Search for a test drive, shall we?



After selecting the business data you would like to see in the column chooser, I am looking for all purchase orders with an amount of $500. There is only one purchase order matching in my system. I can see the details of this activity by clickin on the row of interest:



Users can see all business data associated with this activity instance. Milestones appear sorted from the oldest one to the newest one. Any related document or related activity would appear in their respective sections.


Finally, the “Technical Assistance” can be used to open a technical assistance ticket. The subject / description entered below will be posted to the event log of the server, along with references to engine artifacts (messages / orchestrations) related to this activity.



Tomorow, I’ll show how one can view aggregated data and create alerts when specific condition happen.