Wednesday, May 29, 2013

ESB Toolkit - Development getting started

In order to start using the ESB Toolkit you can use the tutorials and alot of help which can be found on the internet. However, in each project i find myself giving information to project members on some of the gotchas or things which are not documented or all so sparsely documented i thought bundling would be usefull.
In the items below you find most of the tools you will need when digging deep into the BizTalk ESB Toolkit which should get you up and running (after installing it :));

·         Itinerary Test tool (Enables: manually testing of Itineraries)
1)      Locate the
2)      Extract and compile ESB.Itinerary.Test
3)      You’re ready to manually test Itineraries
·         ESB Rules tester (Enables: manually testing of ESB Rules)
1)      Create Business rules to
a.       Dynamically set endpoints / itinerary
b.      Leverage the functionality of On-Ramps with the BRI Resolver
c.       Leverage the functionality of Dynamic mapping / routing with the BRE Resolver
2)      Think about working typed or untyped
3)      Use the rules tester developed by Tomasso Groenendijk
·         Enable tracing (Enables tracing of ETW tracing / ESB Toolit tracing)
1)      Set tracing in the ESB.Config or Machine config
2)      Download DebugView (included in the SysinternalsSuite)
3)      Set the events
4)      Analyse the logs

Wednesday, May 15, 2013

WCF Test Client–BizTalk adapter pack full install

When you have the BizTalk Adapter pack installed, it will update the (machine) config, with some endpoints for certain line of business adapters…

After starting a WCF service, the testclient will start;


you might get an error for each MEX endpoint registered for the LOB adapter as shown in the figure below;


Even though MEX is not enabled in the web.config of the particular project;


it’s problably documented somewhere, but i could not found a fix, so hereby the workaround, the manual of the LOB adapters already states which config file to edit;


And comment the adapters you don’t need;



The annoying thing is however, that with this setting, generating schemas using the ‘Add generated items’ wizard will not work as expected and you can’t see the tables/procedures in you database. So remember to enable IMEX if you need to create schemas for the SQL adapter!











Start the svc editor


Monday, May 13, 2013

BizTalk 2013 - BizTalk Deployment Framework (BTDF) 5.1 beta 2

The BizTalk deployment framework is being so greatly maintained by Thomas F. Abraham and Scott Colestock that i can proudly say there is another update.

After raising a request for an update to include additional shortcuts to be able to update SSO / Bindings information without doing a full deploy (which was possible with some custom command line tools), i am really happy that 2 days after my request, it has been implemented, and a day later a new release is out there;

Release 5.1 beta 2 (supports BizTalk 2013);

Change history (and new features).

How to migrate from an earlier version


Keep up the great job!


- download the new version


- uninstall – install


- create a new build

- install and then…watch the new features Glimlach (only what i requested is shown, there plenty more where that came from!)


So importing the bindings, updating the SSO settings is now a matter of updating the SettingsFileGenerator (overwriting the file) and click on the particular shortcut.

As you would have to do in the previous version by hand;

"C:\Program Files (x86)\Deployment Framework for BizTalk\5.0\Framework\DeployTools\SSOSettingsFileImport.exe" "<project>" /settingsFile:"C:\Projects\Exported_LocalSettings.xml" /userGroupName:"BizTalk Application Users" /adminGroupName:"BizTalk Server Administrators"




Saturday, May 04, 2013

BizTalk 2013 - ESB Toolkit – Resubmit keeps getting better

My colleague Tomasso Groenendijk is quite actively working on extending the ESB Toolkit, his latest extension: Orchestration OnRamp is just fantastic, he did not only enabled an Itinerary to be started from anywere (Orchestration, database) but also analysed and proved that with some tweaking the Itinerary can be started in any step. This is awesome, i'm trying it out in a new solution where this would enable to start an itinerary dynamically. This opens up the opportunity to have a 'MasterControl' itinerary and several 'Processing' itineraries, where the 'MasterControl' itinerary kicks of the next itinerary to use ( I’m really happy he is digging into all this and am axious to see what’s next.   Nice job Tomasso! Sander

Friday, May 03, 2013

BizTalk ETW tracing and LogParser


On a recent project we’ve implemented ETW tracing following the best practices and it indeed gave a great feeling of being able to enable tracing whenever we needed to. My colleague Tomasso Groenendijk implemented an ESB Itinerary Service for ETW tracing and we used the Cat controller to create log files and perform analysis, i didn’t knew about a great tool (or how to use it) called LogParser which basically is the missing puzzle piece (thanks to my other colleague Glenn Fecunda).

LogParser is a great tool which is superfast at analyzing large amounts of data by building up some sort of internal database. It allows you to query the data, in a SQL like syntax.

Below is a small example, which shows a simple query, however, once you see how fast it is on large amounts of data, it sure is a tool worth looking at. The most practical use if when you have a log for which there are special providers (EventLog, IIS etc), but still, with the ‘general’ providers TEXTLINE you can get the idea of how it works, and from there, it’s easy to write some .cpp to create your own provider Knipogende emoticon.


TraceManager.CustomComponent.TraceDetails("test, " + DateTime.Now.ToString(), null);

EventTrace (started a trace with the Cat Controller)

[0]2CB4.1710::04/29/2013-13:49:08.524 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]3590.2874::04/29/2013-13:49:56.360 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]364C.2604::04/29/2013-13:49:59.418 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]3788.254C::04/29/2013-13:50:32.604 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]1624.1DD4::04/29/2013-13:50:34.982 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]1B28.2700::04/29/2013-13:50:40.279 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]0454.1260::04/29/2013-13:50:43.305 [Event]:INFO: This is warm-up event written into ETW trace log - please ignore

[0]3360.0FD8::04/29/2013-13:53:07.038 [Event]:test, 29-4-2013 13:53:07

[0]3360.0FD8::04/29/2013-13:53:07.462 [Event]:test, 29-4-2013 13:53:07

[0]3360.0FD8::04/29/2013-13:53:16.939 [Event]:test, 29-4-2013 13:53:16

[0]3360.0FD8::04/29/2013-13:53:20.961 [Event]:test, 29-4-2013 13:53:20

[0]3360.0FD8::04/29/2013-13:53:21.201 [Event]:test, 29-4-2013 13:53:21

[0]3360.0FD8::04/29/2013-13:53:21.384 [Event]:test, 29-4-2013 13:53:21

[0]3360.0FD8::04/29/2013-13:53:21.889 [Event]:test, 29-4-2013 13:53:21

[0]3360.0FD8::04/29/2013-13:53:22.075 [Event]:test, 29-4-2013 13:53:22

[0]3360.0FD8::04/29/2013-13:53:22.235 [Event]:test, 29-4-2013 13:53:22

[0]3360.0FD8::04/29/2013-13:53:22.418 [Event]:test, 29-4-2013 13:53:22

[0]3360.0FD8::04/29/2013-13:53:22.584 [Event]:test, 29-4-2013 13:53:22

[0]3360.0FD8::04/29/2013-13:53:22.731 [Event]:test, 29-4-2013 13:53:22

Select using LogParser (-i:TEXTLINE…no other provider available)

LogParser "SELECT * FROM BizTalkTrace.txt WHERE Text LIKE '%22.731%'" -i:TEXTLINE

LogFilename   Index Text

20    [0]3360.0FD8::04/29/2013-13:53:22.731 [Event]:test, 29-4-2013 13:53:22

Exclude the INFO lines

LogParser "SELECT * FROM BizTalkTrace.txt WHERE TEXT NOT LIKE '%[Event]:INFO%'" -i:TEXTLINE



So, go on and develop your own providers….and keep me in the loop once they are done Knipogende emoticon.





Wednesday, May 01, 2013

BizTalk Deployment Framework (BTDF) 5.1 beta with BizTalk 2013 - Trying to deploy an application with SSO Settings

Recently i tried to get a BizTalk 2013 up and running. As i normally do, i use the BTDF to deploy the whole bunch of projects, so i downloaded the betaversion 5.1 from codeplex, and started the deployment. Unfortenately i ran into a problem when trying to deploy to the SSO store. I thought, let’s go crazy and enable SSO, unfortenately, this wasn’t a cakewalk, it wasn’t my birthday, but was certainly treated on some stuff i didn’t request, the pop-up;
And of course, the error that helps you out in tough times;
C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\BizTalkDeploymentFramework.targets(1684,5): error MSB3073: The command ""C:\Program Files (x86)\Deployment Framework for BizTalk\5.1\Framework\DeployTools\SSOSettingsFileImport.exe" "<…>" /settingsFile:"<…> " /userGroupName:"BizTalk Application Users" /adminGroupName:"BizTalk Server Administrators"" exited with code -532459699.
Build FAILED.   Problem My analysis is, that the BTDF is built against an older version of the SSO Interop Client. With the release of a new version of BizTalk 2013, the SSO Interop Client is also updated. This means that the reference to the BTDF project needs to be updated. Solution (workaround) Build a new version of the SSO executable / dll, using the steps mentioned below; 1) Extract the source The installation of the BTDF comes with the the source, which is located in a zip file. You should extract the source. clip_image003 And remove the readonly flag; clip_image007 2) Convert the SSOSettingsFileImport project to a VS2012 solution clip_image004 3) Analyse each project to determine if the reference is invalid a) Look at the reference clip_image005 b) Determine if the dll could be located clip_image006 c) Update the reference to the Interop SSO client for all projects that refer to this dll clip_image009 clip_image011 clip_image012 4) Update the target .Net framework version (due to references in the interop client) clip_image014 a) Update deprecated methods (Reflection LoadWithPartialName is not supported anymore) clip_image016 b) Replace with ‘Assembly.Load’ clip_image018 c) Rebuild clip_image020 5) Update the dll’s in the ‘DeployTools’ folder clip_image022 6) Deploy your BizTalk 2013 project! clip_image024   HTH,   Sander

UPDATE: Solved in beta2 (