Microsoft BizTalk Server 2010 Patterns Book Give Away

Microsoft BizTalk Server 2010 Patterns Book Give Away

It is amazing how time flies!  It seems like just yesterday my book on Applied Architecture Patterns hit the shelves, but that was almost a year and a half ago now.

A few months ago, a new BizTalk patterns book written by fellow BizTalk MVP Dan Rosanova has been released.  It is called Microsoft BizTalk Server 2010 Patterns published by Packet Publishing. 

Biztalk Server 2010 Patterns Book

What separates this book from other BizTalk books is it covers both BizTalk Basics & Patterns and a detailed overview of a real-life BizTalk Solution.

This book is available from Packet and Amazon.  Currently, the Amazon Kindle version is available for around $18.  This will be the best $18 you spend toward bettering your BizTalk knowledge!

Thanks to Packet Publishing I have a few copies of the book to give away! 

This week I am going to give away a copy to a random comment on this blog post.  Simply post a comment below (make sure you are a registered user or you include your email address so I can contact you if you win) about a BizTalk Pattern you use today or about Why You Need To Learn About BizTalk Patterns.  I will pick a random winner from all comments received before the end of the day on Wednesday February 8th Central Time. 

I will cover shipping of the book to any address the USPS delivers to worldwide.

If you do not win this time, watch for more upcoming ways to win!

Use SSIS to push data to SQL Azure | Utiliser SSIS pour pousser des données vers SQL Azure

The goal of this blog post is to show that it is as easy with SQL Azure as with SQL Server to push data with SSIS. Le but de ce billet est de montrer qu’il est aussi simple de pousser des donn%u00e9es avec SSIS vers SQL Azure que vers SQL Server.
In this sample, let’s use SQL Server 2008 R2, which is the latest SQL Server version in production (1). Dans cet exemple, utilisons SQL Server 2008 R2, qui est la derni%u00e8re version sortie de SQL Server (1).
The scenario is to push some data from SQL Server 2008 R2 on premises to SQL Azure in the cloud. This is done with SQL Server 2008 R2 Integration Services (SSIS). Le sc%u00e9nario est de pousser des donn%u00e9es venant de SQL Server 2008 R2, %u00e0 demeure, vers SQL Azure, en nuage, et ce avec SQL Server 2008 R2 Integration Services (SSIS).
If and when starting from an empty SQL Azure database, in order to create the schema, one would typically use SQL Azure Migration Wizard which has an option to generate schema only. Dans le cas o%u00f9 l’on part d’une base de donn%u00e9es SQL Azure vide, de fa%u00e7on %u00e0 cr%u00e9er le sch%u00e9ma, on utiliserait typiquement le SQL Azure Migration Wizard qui a une option pour ne g%u00e9n%u00e9rer que le sch%u00e9ma.
Here are the steps to create a very simple SSIS package and execute it (in debug mode): Voici les %u00e9tapes pour cr%u00e9er un package SSIS tr%u00e8s simple et l’ex%u00e9cuter (en mode debug):


NB: the SSIS package needs an outbound access to port 1433 in order to connect to SQL Azure. The SQL Azure firewall must also have been opened for the public IP address the SSIS package will use to access the Internet. NB: Le package SSIS a besoin d’un acc%u00e8s au port 1433 en sortie vers Internet pour se connecter %u00e0 SQL Azure. Le pare-feu SQL Azure doit %u00eatre ouvert pour l’adresse IP publique avec laquelle le package SSIS sort sur Internet.


Here is a synopsis of what we just did. Data was copied from SQL Server 2008 R2 to SQL Azure thru SSIS exactly as it would have been from SQL Server to SQL Server. Voici un r%u00e9capitulatif de ce que nous venons de faire. Les donn%u00e9es ont %u00e9t%u00e9 copi%u00e9es depuis SQL Server 2008 R2 vers SQL Azure %u00e0 travers SSIS exactement comme cela aurait %u00e9t%u00e9 fait de SQL Server %u00e0 SQL Server.
This sample SSIS package was very simple, because its goal was to show connectivity is seamless. Of course, in real life this package would contain much more shapes in order to copy several tables, transform data and so on. Cet exemple de package SSIS est simpliste parce que le but ici est de montrer que la connectivit%u00e9 est ais%u00e9e. Bien s%u00fbr, dans la vraie vie ce package contiendrait bien d’autres %u00e9l%u00e9ments de fa%u00e7on %u00e0 copier plusieurs tables, transformer les donn%u00e9es etc.


(1) SQL Server 2012 is in Release Candidate 0 for now so I expect companies to have SQL Server 2008 R2 deployed (1) SQL Server 2012 est en Release Candidate 0 actuellement et je m’attends donc %u00e0 ce que les entreprises aient d%u00e9ploy%u00e9 SQL Server 2008 R2.

Blog Post by: Benjamin GUINEBERTIERE

How to Make the Most of your Remote Training

Prepare an Optimal Learning Environment

Prepare for the class by making sure that your workstation meets the minimum requirements, have a stable internet connection, a speakerphone or headset, and check for any firewall issues. By double checking everything before class starts you make the morning of class stress free.

Pre-Class Checklist:

When you’re setting up your learning environment, make sure you have an interruption free atmosphere so that you can focus on the class. It is easy to get distracted and miss important information.

Also, it is also helpful to have two computers or monitors to separately view the instructor presentation and remote into the hands-on lab environment.

Speak Up!

Every class starts with introductions. Take this opportunity to get to know your instructor, classmates, and to share about yourself as well as how your company is planning to use the technology. The more information the instructor has about your goals and expectations the better they can tailor the class to your needs.

During class, we highly encourage you to ask questions and participate in classroom discussion. The instructor presentation is only part of the training experience, a lot of the best learning happens organically through class participation. Don’t be shy! The instructors want to hear your questions and comments. It makes for a more exciting and interesting class for everyone.

If you have a question that may not be applicable to the entire class, the instructor may suggest that you take the conversation offline. Either way, we want to make sure you walk away with your questions answered.

Give Feedback

Don’t be afraid to give feedback throughout the week. If class is moving too fast or slow, you’re struggling with a lab, or experiencing technical difficulties, let us know right away. Please don’t wait until the end of week evaluations to let us know about any concerns. Most of these problems have an easy fix, the sooner we know the sooner we can get you back on track.

Connect with your Classmates and Instructors.

You can find most of our trainers and staff on LinkedIn or Facebook! We love to connect with our students and see how things go after training. If you had a great trainer, post your reviews or comments on our community to let other people know. On QuickLearn’s Facebook and LinkedIn pages, we share industry news, technical expertise, as well as special deals and events. We also encourage you to connect with your peers. You never know when those networks will come in handy!

Have Fun!

The most important thing is to relax and have fun. Our instructors are so passionate about technology and want to share that excitement with you. Encourage them by laughing at their jokes and throwing out a few of your own.

The QuickLearn team looks forward to having you in class. If there is anything that we can do to make your experience more enjoyable, please let us know!

Could not create SSOSQL. To fix the problem, reinstall SSO or try ‘regasm SSOSQL.dll’ from a Visual Studio command prompt.Error Code: 0x80131700

You have installed BizTalk?

You have installed SQL server?

You have installed .NET4.0 ?

Everything is fine.

Then you reboot, or you restart SQL Server.

Enterprise Single Sign-on Does not want to start. ???

It errors with:

Could not create SSOSQL. To fix the problem, reinstall SSO or try ‘regasm SSOSQL.dll’ from a Visual Studio command prompt.Error Code: 0x80131700


Windows could not start the Enterprise Single Sign-On Service service on Local Computer.
Error 0x80131700: 0x80131700

OR you are getting:

Creation of Adapter FILE Configuration Store Entries failed.
An Error occurred while attempting to access the SSO database.

The problem is .NET 4 does something to break SSO.

This issue occurs after installing .NET Framework 4.0. The registration of the assembly used by ENTSSO to access SQL Server (SSOSQL.dll) does not specify the correct version of the .NET Framework. When .NET Framework 4.0 is installed, the assembly will try to use the newer framework and then fail to load

DO NOT do what it says in the event log it will NOT work fully.

The fix is:

However you need to BE SURE you do it correctly.

Is your environment 64bit? Most are these days. Did you install 64bit SSO?

Is it in:

64bit: C:\Program Files\Common Files\Enterprise Single Sign-On
32Bit: C:\Program Files (x86)\Common Files\Enterprise Single Sign-On

If you have 64bit, follow the 64BIT instructions ONLY

1. Open a command window
2. Go to C:\Windows\Microsoft.NET\Framework64\v2.0.50727
3. Type each of the following and hit ENTER

32bit: regasm “C:\Program Files\Common Files\Enterprise Single Sign-On\win32\ssosql.dll”
64bit: regasm “C:\Program Files\Common Files\Enterprise Single Sign-On\ssosql.dll”

Note On a 64-bit server, regasm will need to be run for both the 32-bit and 64-bit versions of ssosql.dll.

Do both of these steps and you day will be brighter.

A new blog for BizTalk Administrators

A new blog for BizTalk Administrators

There is a new BizTalk blog. Another one, yes targeted for BizTalk administrators. Why? There are many blogs out there. Yet most of them are focused on the developer. There is not much on BizTalk administrative topics nor one blog where BizTalk administrators share their knowledge, and experience between each other and with the community. Jeroen Hendriks from Axon Olympus started an initiative to create a blog for BizTalk professionals with a heart for managing BizTalk. He talked this through with me sharing some thoughts and a game plan. We took from there and blog is live now!
You can join as contributor by contacting Jeroen (administrator and owner) through Contact Us. Currently besides me and Jeroen, two more professionals from the field joined: Tord Glad Nordahl and Howard S. Edidin. Probably more BizTalk professionals will join over time. I hope many will contribute and even more will read this blog.

TechNet Wiki: The number of BizTalk articles is growing

A couple of weeks ago I wrote a blog post for the Official blog of TechNet Wiki with the topic “Wiki-Ninjas on Technology: BizTalk Server”. In that blog post I wrote a story on contributions of the community and Microsoft employees for the TechNet Wiki. Mid December there were little of 40 BizTalk Wiki Articles and over a month’s time it has grown to little over 70. That is a tremendous growth of articles (around 30). It show increasing popularity of the TechNet Wiki as a channel of information on Microsoft technology and products.

The newly added articles on BizTalk Server have been written by myself, Tord Glad Nordahl, Sandro Pereira, Howard S. Edidin, and Mick Badran. All these articles (existing and new) are being improved every day by people mentioned here and others (Microsoft employees and the community). I expect the number will grow over time to over 100+ articles as more community members will probably join.

With the wealth of information on TechNet Wiki, MSDN and other Microsoft channels combined you can fully leverage the BizTalk Server platform. You can reach all the BizTalk related wiki articles through BizTalk Server Resources on the TechNet Wiki article.

Enjoy reading any of the articles and hopefully you will find them useful.

B2B: SQL Azure as a meeting point | B2B: SQL Azure comme point de rencontre


FABRIKAM is a manufacturing company who has CONTOSO as one of its resellers. FABRIKAM would like to get their sales number thru CONTOSO channel, but CONTOSO does not want to give access to their own database and they don’t have the time to create an application to expose this data. FABRIKAM est une entreprise manufacturi%u00e8re qui a parmi ses revendeurs CONTOSO. FABRIKAM voudrait avoir ses chiffres de vente pour ce qui concerne CONTOSO, mais CONTOSO ne veut pas donner acc%u00e8s %u00e0 sa base de donn%u00e9es et n’a pas le temps de cr%u00e9er une application pour exposer ces donn%u00e9es.
CONTOSO is willing to put data they have about FABRIKAM products they sell in a CONTOSO database, but CONTOSO cannot expose their database to the Internet either. So they decide to rent a database on the Internet. CONTOSO veut bien en revanche pousser les donn%u00e9es de vente de FABRIKAM, mais CONTOSO ne peut pas non plus exposer ses propres bases de donn%u00e9es sur Internet. Ils d%u00e9cident donc de louer une base de donn%u00e9es sur Internet.
SQL Azure is a perfect fit for this. There is no hardware, infrastructure or other high availability mechanisms to worry about, SQL Azure is a relational cloud PaaS level database as a service (note from the author: think I put quite a few keywords in that sentence!!!). SQL Azure correspond parfaitement. On n’a pas besoin de s’occuper de mat%u00e9riel, d’infrastructure, ou autre m%u00e9canismes de haute disponibilit%u00e9, SQL Azure est une base de donn%u00e9es relationnelle en tant que service dans le nuage de niveau PaaS (NDLR: je pense que j’ai mis un paquet de mots clefs, l%u00e0!!!).
CONTOSO will be able to push filtered data (only FABRIKAM sales data) to a database outside their firewall, and FABRIKAM will be able to query that data with SQL or build reports with SQL Azure Reporting Services. CONTOSO va pouvoir pousser les donn%u00e9es filtr%u00e9es (uniquement les vente de FABRIKAM) vers une base de donn%u00e9es en dehors de leur pare-feu, et FABRIKAM  pourra requ%u00eater ces donn%u00e9es en SQL ou m%u00eame cr%u00e9er des rapport avec SQL Azure Reporting Services.
FABRIKAM creates %u00e0 SQL Azure server (let’s call it In this server, they create a SQL Azure database named salesthrucontoso with a dedicated login salesthrucontosodbo. FABRIKAM cr%u00e9e un serveur SQL Azure (Appelons-le Dans ce serveur, ils cr%u00e9ent une base de donn%u00e9es SQL Azure appel%u00e9e salesthrucontoso avec un compte d%u00e9di%u00e9 salesthrucontosodbo.
CONTOSO has communicated to FABRIKAM the range of IP adddresses they use to go to the salesthrucontoso database, so that FABRIKAM can configure SQL Azure server firewall rules CONTOSO avait communiqu%u00e9 %u00e0 FABRIKAM les plages d’adresses IP qu’ils utiliseront pour se connecter %u00e0 la base salesthrucontoso, de fa%u00e7on %u00e0 ce que FABRIKAM puisse configurer les r%u00e8gles de pare-feu du serveur SQL Azure.
In return, FABRIKAM communicates to CONTOSO all the details to connect to the SQL Azure database:
– server name:
– database name: salesthrucontoso
– login: salesthrucontosodbo and its password
En retour, FABRIKAM communique %u00e0 CONTOSO tous les d%u00e9tails pour se connecter %u00e0 la base SQL Azure:
– nom de serveur :
– nom de la base: salesthrucontoso
– compte: salesthrucontosodbo and its password
As SQL Azure uses the same tabular data stream (TDS) protocol as SQL Server, CONTOSO can use SQL Server drivers to access SQL Azure. They do it thru their usual ETL(*) tool. So CONTOSO can easily build an interface from their database (SQL Server, or Oracle, DB2, or any other vendor’s database) towards the cloud database and run it everyday so that FABRIKAM easily access their data without any risk to compromise their own internal databases. Comme SQL Azure utilise le m%u00eame protocole TDS que SQL Server, CONTOSO peut utiliser pour acc%u00e9der %u00e0 SQL Azure les m%u00eame pilotes d’acc%u00e8s que ceux d’SQL Server. Ils le font %u00e0 travers leur ETL habituel. CONTOSO peut ainsi facilement construire une interface depuis leur base de donn%u00e9es (SQL Server, Oracle, DB2, ou autre) %u00e0 destination de la base de donn%u00e9es en nuage et ex%u00e9cuter cette interface quotidiennement pour que FABRIKAM puisse acc%u00e9der facilement %u00e0 ses donn%u00e9es sans risque de compromettre ses propores bases de donn%u00e9es internes.


(*) ETL = Extract Transform Load.
As an example, SQL Server’s ETL is SSIS (SQL Server Integration Services).
(*) ETL = Extract Transform Load.
Par exemple, l’ETL d’SQL Server est SSIS (SQL Server Integration Services).
Please refer to this post that shows how to connect to SQL Azure with SSIS. Voir ce billet qui montre comment se connecter %u00e0 SQL Azure depuis SSIS.


Blog Post by: Benjamin GUINEBERTIERE

BizTalk Processing Monitor in Public Beta

Since this week BizTalk Processing Monitor is available as a Public Beta. It can be obtained here.

Why use BizTalk Processing Monitor
Depending on how you setup BizTalk Processing Monitor, it helps you, amongst others, with the following needs:

  • Monitoring and notification of any message flow interruptions
  • Get insight in how the BizTalk solution is setup
  • Adds value when doing stress or load tests
  • Informs you when your BizTalk system is throttling and why
  • Informs you in how many messages (in number and in KB, MB or GB) are processed
  • Informs you what kind of messages (Message types) are processed
  • Informs you about transmission failures

The most important features of BizTalk Processing Monitor are:

  • Message flow monitoring with notifications
  • Throttling monitoring with notifications
  • Singleton Backlog monitoring
  • Support for multiple environments
  • Integration with other monitoring tools

The following documentation is available:

  • Getting started with BizTalk Processing Monitor (download)
  • How to use the Traffic Light Monitoring (download)
  • Overview Keyboard Shortcuts (download)
  • Exporting and importing Diagrams (download)

SQL Azure: create a login that has only access to one database | SQL Azure: créer un login qui n’a accès qu’à une base de données

You have a SQL Azure Server. You can access the databases thru the administrator login you specified while creating the SQL Azure Server. On dispose d’un serveur SQL Azure. On peut y acc%u00e9der avec le compte administrateur qui a %u00e9t%u00e9 sp%u00e9cifi%u00e9 lors de la cr%u00e9ation du serveur SQL Azure.
In the SQL Azure server, you have the following databases:
– master
– DB001
– DB002
Dans le serveur SQL Azure, on dispose des bases suivantes:
– master
– DB001
– DB002
You would like to create a SQL Azure login that has fully access to DB001 but no access to the other databases. On souhaite cr%u00e9er un compte d’acc%u00e8s %u00e0 SQL Azure qui est administrateur de la base DB001 mais n’a pas acc%u00e8s aux autres bases.
Here is how to do that. Voici comment proc%u00e9der.
In the Windows Azure management portal, select the master database and click manage. Dans le portail d’administration de Windows Azure, s%u00e9lectionner la base master et cliquer sur Manage.
connect with the SQL Azure Administrator se connecter avec l’administrateur SQL Azure
Create the new login by entering the following statement in a new Query:

create login DB001Admin with password = ‘IYtfidgu18’;

(replace IYtfidgu18 by a password you choose)
then click Run

cr%u00e9er le nouveau compte en entrant la requ%u00eate suivante dans une nouvelle “Query”:

create login DB001Admin with password = ‘IYtfidgu18’;

(remplacer IYtfidgu18 par nun autre mot de passe qu’on choisira)
puis cliquer sur Run

Close the browser tab and go back to the Windows Azure management portal. Select DB001 database, click manage Fermer l’onglet du navigateur et aller de nouveau dans le portail Windows Azure. S%u00e9lectionner la base DB001 et cliquer sur manage.
connect with the SQL Azure Server admin login (the same you used to connect to master) and create a new query se connecter avec le compte d’administration du serveur SQL Azure (le m%u00eame qu’on a utilis%u00e9 pour se connecter %u00e0 la base master) pus cr%u00e9er une nouvelle “query”
type the following statement:

    FOR LOGIN DB001Admin

— Add user to the database owner role
EXEC sp_addrolemember N’db_owner’, N’DB001Admin’

and Run the query

Taper la requ%u00eate suivante:


— Add user to the database owner role
EXEC sp_addrolemember N’db_owner’, N’DB001Admin’

et cliquer sur Run

DB001Admin with a password of IYtfidgu18 (or whatever you chose) is now a valid login for DB001 database, and only that database. DB001Admin avec le mot de passe IYtfidgu18 (ou ce qu’on a choisi %u00e0 la place) est maintenant un compte valable pour la base DB001, et seulement pour cette base




PS: with contained databases, there might also be ways to have database users fully defined in the database, but this is not the case yet in SQL Azure. PS: Avec les bases de donn%u00e9es contenues, il pourrait y avoir %u00e0 l’avenir un compte directement h%u00e9berg%u00e9 au niveau de la base elle-m%u00eame, mais ce n’est pas le cas actuellement dans SQL Azure.

Blog Post by: Benjamin GUINEBERTIERE

BizTalk and 0MQ (ZeroMQ)

It is stupid to compare those two beasts.

BizTalk Server is a pricey, huge development and run-time system, it includes tons of the tools, supports tons of protocols and systems. It works for very specialized middle ware integration stack. It integrates big and complex systems as SAP, CRM, Oracle and intermediates many protocols and standards as SOAP, EDI, SWIFT, FTP, tons of them.

It is a messaging system.

ZeroMQ is a low-level, wire-levelprotocol, the same level as TCP. It has ultra-simple API. It isimplemented as a library for dozens languages as C#, Java, Python, PHP, C++, COBOL, Ada, Haskel, F#, Erlang, etc. It works in the most OS: Windows, Linux, QNX… It is free and works under open-source license.

It is a messaging system.

BizTalk implements many messaging exchange patterns: Request-Response, Pub-Sub, Queue, Message Broker, Router, Convoy.

0MQ implements the same: Request-Response, Pub-Sub, Pub-Sub with Topics, Queue, Message Broker, Router…

BizTalk development stack is compounded of several editors. BizTalk run-time stack includes several services on top of SQL Server, several tools, and tons of dll-s and SQL code.

0MQ is just a library, a dll. Library per language, per OS.

Why I feel so comfortable with this 0MQ?
Why I think it is a serious choice to do messaging in my real-life messaging?
Do I want to abandon the comfort of a big track to ride almost bare-bone wheels?