TechDays 2012-The Microsoft Integration Story

At TechDays 2012 in Sweden we did a presentation called “The Microsoft Integration Strategy” (or Story), something that we have done in variations for BizTalk User Group Sweden and other events.

I am delighted to have gotten back the review which puts the session in the top 10 sessions (7th). Glad you liked it. The presentation slides are here (as a pdf). I’ll be happy to share the pptx if you want it, just ask (It keeps me up to date with other interesting presenters and events). The video should be available shortly (in Swedish though).

Blog Post by: Johan Hedberg

joined BizTalkAdminsBlogging.com

My personal blog only exists for a year and a half now, but already has quite some visitors. Yesterday I was even asked to join another Biztalk blogging team on Biztalk administrator related topics. I already knew the blog and was a frequent visitor of the website. Of course I was glad to join the Biztalk blog team.

So, as of  today I joined several other biztalk experts on the BizTalk admin blog BizTalkAdminsBlogging.com.
This blog is dedicated to provide BizTalk admins with useful information, tips, example scripts and everything else that is interesting for a BizTalk admin.

I will still publish posts to this blog, but I will also write an occasional blog post for the BizTalkAdminsBlogging.com website… My first post on the site still has to be written, and any suggestions are always welcome :).

My profile on BizTalkAdminsblogging.com: http://www.biztalkadminsblogging.com/index.php/component/k2/itemlist/user/59-mitchvanhelden

BizTalk 2010: Creating TPM Partners through Code

Hi folks, recently I’ve been asked by several students on how to create Parties, Agreements, Profiles etc. via code in BizTalk 2010.

I played with this along time ago while at Redmond as BizTalk 2010 was in the process
of being released.

So I’ve just rolled up my sleeves and provided a quick demo for you – the demo shows:

  1. How to enumerate and get at each of your TPM Partners.
  2. How to create Partners + Profiles within BizTalk 2010.

Note: I’ve only tried this on BizTalk 2010 (& needless to say I’m claiming
‘works on my machine’ :))

What we’re talking about in BizTalk
This section here….

Show me the code….

Well the magic is found in this DLL –

C:\Program Files (x86)\Microsoft BizTalk Server 2010\Developer Tools\Microsoft.BizTalk.B2B.PartnerManagement.dll


– create a VS.NET 2010 app (for this demo I created a console app)
– we make a reference to the above DLL (we also need to reference system.data.entity)
– set a connectionstring to our BizTalk Management DB, mine is BizTalkDB (as
I rolled all the BizTalk DBs into one – for dev)
– start enumerating.

C# Looks like this

static void Main(string[]
args) { //enumerate
all the TPM Profiles in BizTalk var builder = new SqlConnectionStringBuilder("DATA
SOURCE=localhost;Initial Catalog=BizTalkDB;" + "Integrated
Security=SSPI;MultipleActiveResultSets=True"); var tmpCtx = TpmContext.Create(builder);
Console.WriteLine("Connected
to BizTalk Global Parties"); var partners = tmpCtx.Partners;
Console.WriteLine("Number
of Parters:{0}", partners.Count()); Console.WriteLine("------------"); foreach (var
ptr in partners)
{ var profiles = ptr.GetBusinessProfiles();
Console.WriteLine("{0}
Business Profiles:{1}", ptr.Name, profiles.Count); foreach (var
profile in profiles)
{ Console.WriteLine("\tProfile:{0}",
profile.Name); } } tmpCtx.Dispose(); if (bCreateProfile)
{ createProfile("Breeze
Partner #"); } Console.WriteLine("Finished");
Console.ReadLine(); }

Point to Note: in the connection string I set ‘MARS=true’ just so we can enumerate
several collections at once through the one context. When updating or saving new,
partners and/or profiles I get errors and can’t save through a MARs enabled connection.
(love to hear if you have different luck)

Creating a Partner + Profile

//
need to do this through a single threaded connection - no MARS private static void createProfile(string partnerName)
{ partnerName += DateTime.Now.ToString("yyyyMMdd-hhmmss") + (new Random().Next(0,
65535)); Console.WriteLine("Writing
a new Profile for {0}", partnerName); var builder = new SqlConnectionStringBuilder("DATA
SOURCE=localhost;Initial Catalog=BizTalkDB;Integrated Security=SSPI"); var
tmpCtx = TpmContext.Create(builder);
var ptr = tmpCtx.CreatePartner(partnerName);
var pname = "Breeze
Profile-#" + DateTime.Now.ToString("yyyyMMdd-hhmmss") + (new Random().Next(0,
65535)); var bp = ptr.CreateBusinessProfile(pname);
bp.Description = "Created
from Code"; var pcol = new AS2ProtocolSettings("BreezeProtocolSettings");
bp.AddProtocolSettings(pcol); tmpCtx.SaveChanges(); tmpCtx.Dispose(); }

And
that’s pretty much all there is to it folks, have a play around with the APIs for
yourself – all undocumented of course.

Here’s the Console App Solution I use (built for very demo purposes)

TPM API
Demo.zip (32 KB)

Enjoy Mick!

Blog Post by: Mick Badran

Guideline to Solve Performance issues of Biztalk

Typically a performance problem can be narrowed down to one of the following components of a BizTalk Server environment:

%u00b7         A receive adapter or the system from which the adapter is receiving documents. For example, if documents are being received by the HTTP adapter at a suboptimal rate then the problem may be with the HTTP receive adapter or with the client that is posting to the HTTP adapter.
%u00b7         An orchestration service instance.
%u00b7         Performance of the SQL Server that hosts the BizTalk Server databases.
%u00b7         A send adapter or the system that the adapter is sending documents to. For example, if documents are being sent by the SQL adapter at a suboptimal rate then the problem may be with the SQL send adapter or with the computer running SQL Server that the SQL adapter is updating.

Use the following guidelines to help identify the components of the BizTalk Server environment that are performing poorly:

%u00b7         Capture any warnings or errors generated in the BizTalk Server or SQL Server Event Viewer.
%u00b7         Follow the steps in “Identifying Performance Bottlenecks” in BizTalk Server Help at http://go.microsoft.com/fwlink/?LinkId=154238 to help identify performance bottlenecks.

Once the poorly performing component has been identified, follow the appropriate guidelines to help resolve the issue:
Guidelines for resolving performance problems related to send and receive adapters

%u00b7         For information about troubleshooting problems with BizTalk Server adapters, see “Troubleshooting BizTalk Server Adapters” in BizTalk Server Help at http://go.microsoft.com/fwlink/?LinkId=154240. This section contains general troubleshooting information including information about how to set up logging for certain adapters, and information that can be used diagnose network problems, problems with MSDTC, problems with the registry, problems with the file system, and problems with IIS.
%u00b7         For information about troubleshooting problems with MSDTC, certificates, Enterprise Single Sign-On, and SQL Server, see the appropriate section of “Troubleshooting BizTalk Server Dependencies” in BizTalk Server Help at http://go.microsoft.com/fwlink/?LinkId=154242.

Guidelines for resolving performance problems related to orchestrations

%u00b7         For information about modifying the appropriate sections of the BTSNTSvc.exe.config file, see “Orchestration Engine Configuration” in BizTalk Server Help at http://go.microsoft.com/fwlink/?LinkId=154244.

Guidelines for resolving performance problems related to SQL Server

%u00b7         SQL Server Profiler can be used to capture Transact-SQL statements that are sent to SQL Server and the SQL Server result sets from these statements. Since BizTalk Server is tightly integrated with SQL Server, the analysis of a SQL Server Profile trace can be a useful tool for analyzing problems that may occur in BizTalk Server when reading from and writing to SQL Server databases. For information about how to use SQL Server Profiler, see “Using SQL Server Profiler” in SQL Server Books Online at http://go.microsoft.com/fwlink/?linkid=104423.
%u00b7         SQL Server Management Studio can be used to execute SQL statements directly against SQL Server databases. This functionality may be useful for querying the BizTalk Server databases or for updating the BizTalk Server databases in certain scenarios. For more information about using SQL Server Management Studio to execute SQL statements, see “Writing, Analyzing, and Editing Scripts with SQL Server Management Studio” in SQL Server Books Online at http://go.microsoft.com/fwlink/?linkid=104425.
%u00b7         For more information about resolving performance problem related to the BizTalk Server databases, see “Troubleshooting SQL Server” in BizTalk Server Help at http://go.microsoft.com/fwlink/?LinkId=154250.

Sweden Windows Azure Group Meeting – Migrating Applications to Windows Azure & Sharding And Scaling with RavenDB, with Shay Friedman & Oren Eini

Wednesday, May 23, 6:00 PM, Stockholm

Migrating Applications to Windows Azure – Shay Friedman

Windows Azure is the next big thing for server-side applications and one of its major use cases is hosting existing .NET applications. However, Window Azure is not your regular playground and some preparations are necessary. In this session, Shay Friedman will take you through different ways to make sure your application is ready to move to the cloud. In addition, Friedman will explain how you can estimate the cost of running your web application in the cloud.

Sharding And Scaling with RavenDB – Oren Eini

From the get go, RavenDB was designed with sharding in mind. But sharding was always a complex topic, and it scared people off. Following the same principles that guides us with the rest of RavenDB design, we have taken sharding to the next level, made it easier to work with, performant and self optimizing.

Come to this talk with Ayende Rahien to discover RavenDB sharding, discuss scaling scenarios and see how we can use RavenDB in a high traffic scenarios.

Shay Friedman

Shay Friedman is a Visual C#/IronRuby MVP and the author of IronRuby Unleashed. With more than 10 years of experience in the software industry, Friedman now works in CodeValue, a company he has co-founded, where he creates products for developers, consults and conducts courses around the world about web development and dynamic languages. You can visit his blog at http://IronShay.com.

Oren Eini (Ayende Rahien)

Oren Eini has over 15 years of experience in the development world with a strong focus on the Microsoft and .NET ecosystem and has been awarded the Microsoft’s Most Valuable Professional since 2007. An internationally known presenter, Oren has spoken at conferences such as DevTeach, JAOO, QCon, Oredev, NDC,…

Are you using schedules/service windows in Receive Locations/Send Ports

There are some challenges in using BizTalk administration console if you are taking advantage of schedule/service window capabilities in BizTalk receive locations and Send ports.

If you are one of those customers with lots of scheduled receive locations and send ports, then you need to take a look at this blog post "BizTalk Receive Locations/Send Ports with service window – BizTalk360 can make your life easy"

Please add BizTalk360 RSS feed http://feeds.feedburner.com/biztalk360 to your reader to get product updates.

Nandri!

Saravana Kumar