by community-syndication | Mar 2, 2010 | BizTalk Community Blogs via Syndication
Consider the following scenario:
You have an adapter on a Receive Location, which submits a message in Format A into BizTalk.
The Pipeline configured on this Receive Location converts the message into Format B.
Assume that there is no map configured on the Receive Port.
You have the “Route Failed Messages” option enabled on the Receive Port.
You have set up an orchestration (or Send Port) which subscribes to the Error Reports (i.e., the failed messages which are routed due to the “Route Failed Messages” feature) generated by this Receive Port 1.
Problem: When a message is received on this Receive Location, and there are no subscribers for it, you expect that the message in Format B will be received by your error-handling orchestration (or Send Port). However, in some scenarios (depending on the pipeline, pipeline configuration, etc), you see that the message received by the error-handling orchestration (or Send Port) is in Format A. How come?
Here’s what is most probably happening:
Adapter submits a message in Format A.
The pipeline executes, and the message is converted to Format B.
The Messaging Engine attempts to publish the message, but finds that there are no subscribers for this message. It thus returns an error back to the Adapter.
The Adapter attempts to suspend the message. NOTE – here, it attempts to suspend the message which it knows about (which it received from the back-end) – this message is in Format A.
The Messaging Engine sees this:
someone (the adapter in this case) is suspending a message (message in Format A, in this case)
“Route Failed Messages” is enabled on the port
The Messaging Engine, instead of suspending, decides to “route” an Error Report corresponding to the message being suspended. This is the message in Format A, in this case.
Your error-handling orchestration (or send port) thus ended up receiving the message in Format A.
Question: What do you do if you want to have the message received by your error-handling orchestration (or send port) to be in Format B?
Answer: The output message from the pipeline must have the context property “SuspendMessageOnRoutingFailure” present, with a value of true (boolean).
How does that work? Well, it changes the sequence above to be as follows:
Adapter submits a message in Format A.
The pipeline executes, and the message is converted to Format B.
The Messaging Engine attempts to publish the message, but finds that there are no subscribers for this message.
The Messaging Engine sees the “SuspendMessageOnRoutingFailure” message context property is set to true, and instead of returning an error back to the Adapter, attempts to suspend the message. NOTE that this message is in Format B.
At the same time, the Messaging Engine also sees this:
someone (the Messaging Engine itself, in this case) is suspending a message (message in Format B)
“Route Failed Messages” is enabled on the port
The Messaging Engine, instead of suspending, decides to “route” an Error Report corresponding to the message being suspended. This is the message in Format B.
Your error-handling orchestration (or send port) now receives the message in Format B.
The out-of-box XML Disassembler component, has an option named “Recoverable Interchange”. When this option is set to true, the XML Disassembler internally translates this to mean “SuspendMessageOnRoutingFailure”=true, and sets this context property to the message.
by community-syndication | Mar 2, 2010 | BizTalk Community Blogs via Syndication
Support for integration with IBM Mainframe and AS 400 is often mentioned as a key feature of BizTalk. And as many of these system are still in use, the knowledge of these adapters should be widely spread; -but unfortunately it is not.
In fact, it has been a challenge to even find anyone to do a session about this topic. It was not until we sent out a request for speaker on our blogs that we eventually found someone qualified to do the job. This is a great opportunity for anyone calling themselves a “BizTalk developer”, to find out how to use one of the key selling points of BizTalk, and open up some new prospects for business.
Are you in Stockholm on the 16th of March? Then come see Sam Vanhoutte and Peter Borremans from CODit talk about: Network integration, Data integration, Application integration and Messaging integration.
Sign up now: http://swebug20100316-widget.eventbrite.com/
by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
The AppFabric team hit another milestone today with the public availability of AppFabric Beta 2. Congrats team!!!
Now, because I know there must be some confusion out there, AppFabric is a brand, as I blogged about here. I’ve been doing some posts here lately about extending BizTalk ESB to Windows Azure AppFabric, but that’s not the AppFabric this is about, this is Windows Server AppFabric. It brings together what was formerly codename “Dublin” and codename “Velocity”, and provides a host for WF/WCF. This is a really interesting set of new capabilities that .NET developers are about to get, and I’ll start blogging more about it soon, as the SOA implications are significant.
You can learn more and get the beta here.
by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
A new white paper was released a few days ago by Microsoft, written by MVP Jon Flanders, on the ESB Toolkit.
It’s a well written paper that walks through the architecture, and shows examples, and serves as both an overview and a mini-tutorial. Great place to start if you want to come up to speed on this.
He REALLY nails it well in the summary, I would quote it here but that would violate the copyright, so I’ll paraphrase: “hey this is really cool and powerful, and adds tremendous business value”. That doesn’t do it justice though, I’d suggest you go read it for yourself.
You can get it here. Enjoy!
by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
The .NET Endpoint blog announced this morning the availability of Windows Server AppFabric Beta 2, which can be downloaded at http://msdn.microsoft.com/appfabric. According to the announcement, Beta 2 was written to work against the RC of Visual Studio 2010, and is apparently now feature complete:
This build represents our “feature complete” milestone. That is, it contains all the features that we plan to ship in Windows Server AppFabric v1 by Q3 of 2010. For this release we focused on building a provider model for persistence, monitoring, and cache configuration stores. In our Beta 1 release we supported only the SQL Server based persistence and monitoring providers that we shipped and supported only an XML file based or SQL Server based cache configuration store. In Beta 2 we now also support providers for other database platforms or for other types of stores, in the case of persistence and cache configuration.
This is an exciting milestone for the team, and will certainly be a great time to begin evaluating Windows Server AppFabric for inclusion in upcoming projects.
by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
You can download the bits and get some great samples in the MSDN development center. AppFabric is the combination of the distributed caching features previously codenamed “Velocity” and the composite application management features previously codenamed “Dublin”. These extensions to Windows Server continue to make it a great platform for building applications. I’m excited about the tooling that AppFabric brings to the management of Workflow Services as it makes it much easier to configure, monitor and take action on deployed services. In addition, AppFabric adds to the rich tracking story in WF by allowing you to store tracking information in a SQL database so you can do historical analysis.
This build is based on the Release Candidate of .NET Framework 4, so you’ll want to have that installed first before installing AppFabric.

by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
This morning I found myself in need of the SQL Server management studio on a new box I built a few months ago. So far, I’ve only installed Visual Studio 2010 RC and the SQL Server 2008 Express that came with it. I was first directed to use the Web Platform Installer which, while it is a great tool, didn’t provide any details with the installation ultimately failed. After trying to run the installer as an administrator directly (outside the Web PI) I was warned that I needed to re-apply SQL Server 2008 Service Pack 1. No biggie, I hit run anyway. Then the real problem. The installer kept failing saying that it required .NET 3.5 with Service Pack 1. Windows 7, as you may know, comes with .NET 3.5 SP 1 installed by default. Well, sort of.
While Windows 7 basically has 3.5 SP 1 on it, it really has a comparable version of the .NET framework installed. Most machines (pre-win7) with 3.5 SP 1 have a framework version of something like 3.5.30729.1 . On Windows 7, the framework version is: 3.5.30729.4926. If you look in the registry, under HKLM\Software\Microsoft\.NET Framework Setup\NDP\v3.5\ you will find this version number, but also a key named SP. On Windows 7 that value is zero (0).
Solution, change the registry entry for the SP key from 0 to 1 (one) and then run the installer. Voila, installs with no problem. Now I just need to reapply SP1 (well, after actually walking through the less-than-intuitive installer to apply the management studio) and I’m good to go.
Hope this saves someone else some time.

by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
We are excited to announce that the Beta 2 release of Windows Server AppFabric is now available for download via http://msdn.microsoft.com/appfabric . This is the Windows Server AppFabric build that works with the RC (Release Candidate) build of Visual Studio 2010/.NET 4. Windows Server AppFabric is a set of application services focused on improving the speed, scale, and management of Web, Composite, and Enterprise applications. We encourage developers and IT professionals building ASP.NET applications or applications that use WCF or WF and run on IIS to download the Beta and provide feedback at http://connect.microsoft.com/dublin/feedback or via our forum at http://social.msdn.microsoft.com/Forums/en-US/dublin/threads/.
This build represents our “feature complete” milestone. That is, it contains all the features that we plan to ship in Windows Server AppFabric v1 by Q3 of 2010. For this release we focused on building a provider model for persistence, monitoring, and cache configuration stores. In our Beta 1 release we supported only the SQL Server based persistence and monitoring providers that we shipped and supported only an XML file based or SQL Server based cache configuration store. In Beta 2 we now also support providers for other database platforms or for other types of stores, in the case of persistence and cache configuration.
New features and changes in Hosting and Service Management include:
%u00b7 For Monitoring, now when an application is configured at the Health Monitoring level (the default level) the Event Collector aggregates the WCF Operation Completed events instead of writing the individual events to the database. The OperationCompleted event is the most common event because it is fired whenever a WCF call succeeds. The Event Collector now aggregates these events that it receives over a 10 second window. It groups the OperationCompleted events by virtual path and operation name and records one AggregateOperationCompleted event instead of the raw OperationCompleted events. You can disable the aggregation at the Health Monitoring level by changing a flag in the Event Collector’s configuration file. The Release Notes document explains how to do that.
On the Dashboard in IIS Manager you will still see the total count of completed calls. However, when you drill into the Tracked Events page you’ll see the AggregateOperationCompleted events, assuming that you’re looking at an application set to the Health Monitoring level. On this page we have added “Operation Name” and “Call Duration (ms)” columns when WCF events are shown. The individual call duration or the average duration property, depending on whether the event is raw or aggregated, is shown in the “Call Duration (ms)” column.
%u00b7 Windows Server AppFabric now takes advantage of three new WCF events that are available for custom tracing-a user defined information, user defined warning, and user defined error event. There is a sample posted at http://msdn.microsoft.com/en-us/library/ee667248(VS.100).aspx that shows how to emit these events from your WCF service. In the AppFabric Dashboard in the WCF Calls section we’ve made the Errors header more general to include Service Model errors and any user defined errors that your services emit. On the Tracked Events page we show all three types of user defined events, with the name of the event that you’ve defined (suffixed with the actual event type name in parentheses) shown in the Event Type column.
%u00b7 In IIS Manager we now fully support the “tagless service” feature that .NET 4 provides. This feature allows you to omit explicit service definitions in the web.config files for WCF or WF services. When there is no <service> tag the runtime makes some assumptions about your service-it applies default endpoints and the “nameless” (name=“”) behavior configuration. See http://msdn.microsoft.com/en-us/library/ee354381.aspx for more details.
The Endpoints list in IIS Manager now shows you the endpoints that are explicitly defined inside <service> tags in your web.config files and also those that are applied by the runtime. This includes the service endpoints for tagless services and the standard endpoints (like the MEX endpoint and the workflow control endpoint).
The application and service configuration modules in IIS Manager now support “behavior merge”. This .NET 4 feature merges the configuration for the nameless behavior across various scopes in the IIS tree. For example, when you install Windows Server AppFabric we create the nameless behavior at the root of your server (in the web.config file inside the .NET configuration files directory). In that behavior we enable monitoring at the Health Monitoring level. This means that any service on the machine (as long as it does not use a named behavior configuration) will get this behavior by default. If you want a particular application to use a different monitoring level you can use the configuration tools (in IIS Manager or PowerShell) to change the configuration for that application. When the tools write the configuration change into the application’s web.config file they write a local nameless behavior that contains only the different monitoring setting. At runtime the system level nameless behavior gets merged with the local one defined at the application level. The net effect is that your application gets all the system defaults + the different monitoring level.
%u00b7 In .NET 4 some changes were made to how workflow persistence is configured. Some of the settings (like “Unload instances when Idle” and “Action on Unhandled Exception”) were moved from the instance provider behavior to separate host-related behaviors. The IIS Manager configuration tools have been updated accordingly. You will see that some of the settings that were under the “Workflow Persistence” tab in Beta 1 have been moved to a “Workflow Host Management” tab.
%u00b7 We replaced the System Services, Persistence Databases, and Monitoring Databases modules in IIS Manager with a Configuration wizard. As before, you use the Setup wizard to select which features you want to install. The features are grouped into a “Runtime Features” category and an “Administration Tools” category. When it has finished, the Setup wizard launches the Configuration wizard, but you can also run the Configuration wizard whenever you want to change your monitoring, persistence, or cache settings.
New features in Distributed Cache include:
%u00b7 We have added PowerShell cmdlets for configuring cache clusters. The commands are New-CacheCluster, Add-CacheHost, Get-CacheClusterInfo, Register-CacheHost, Remove-CacheCluster, Remove-CacheHost, and Unregister-CacheHost. These commands give you granular control of cluster deployment.
%u00b7 The Cache service now throttles when it is under memory pressure. When it is in the throttling state the service will allow all “read” and “delete” requests but will reject all “write” and “update” operations. This prevents the service from engaging in excessive paging. Throttling events get logged to the Event Log and allow administrators to free available memory, add nodes to the cluster, or change the expiration or deletion policy of cached items, for example.
%u00b7 The Cache service now logs information to two ETW channels. The Admin channel is enabled by default and collects all events like Start Cache Service and Stop Cache Service and any unhandled exceptions. The Operational channel is disabled by default. When it is enabled it captures all warnings from the Cache service. The Event Viewer shows the collected data under Applications and Services Logs -> Microsoft -> Windows -> Application Server – System Services.
We are excited about our Beta 2 release and would love to hear what you think.
by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
During this past MVP summit there was an abundance of trash talk regarding Olympic Hockey. Mikael Hakanssons and I made a Blog bet with the loser of the bet dedicating a post to the winning country. As I am sure you have heard, Canada beat USA in overtime 3-2 on Sunday. I will give Mikael credit for being a good sport even though he jumped on the USA bandwagon as soon as Sweden was eliminated. You can find his post here.
by community-syndication | Mar 1, 2010 | BizTalk Community Blogs via Syndication
Apparently, this post has no relevance to BizTalk or any related technology
While under the influence of alcohol. Kent Weare had me convinced we should have this ridiculous bet (but it seamed reasonable at the time), where if Sweden would win the gold medal in the Olympics, he would post a picture of the Swedish hockey team, and if Canadayou get the pointso here it is
and yes -I’m humiliated!