SQL Bulk Load adapter

While creating the EDI Warehouse, for EDI files that were large (10mb transactions), I was seeing 1 of two things with the SQL Adapter:

  1. Out of memory exceptions
  2. Taking hours to load data with high sql server usage

In opening a ticket with Microsoft to discover that the SQL adapter casts the message to a string in a certain part of the code, I knew that I could not use it for consistent high volume usage.

I created a Bulk XML Load adapter that accomplishes in 1 minute that previously took 3 hours to load.

This is the interface:

Some of the features are:

If the size of the message is small enough (as defined in the send handler properties) it takes the message and directly loads the data into the database. You can override the direct Stream to Database setting by changing the File Load boolean to True or if the message size is greater than the send handler property (by default set at 10mb)

Enables all of the features of Bulk XML load 4.0

If an error occurs during the load, will create the xml data it is trying to load, the error.xml and a Visual Basis Script to re run the process for further testing (as long as the Debug Flag is set to True).

In the Event Log you see this entry:

This allow to manually run the bulk load to determine the error.

ESB Guidance 2.0 Screen Videos: Part 1 – Basic Routing

So I’ve been speak a lot about version 2.0 of the ESB Guidance and I thought I’d better get some of that content up to the blog. I’ll be posting a series of demos that I’ve built that show how to use the new features and tools in V2.  In order to keep the blog entries shorter and easier to get out quickly, I’m just going filming me doing the demo and then I’ll post the AVI file for you to watch. (i.e. pictures and videos being worth a thousand words or so) That saves me from having to take screen shots and to try and verbally explain what I did.

In part one, I’ll be showing how to implement a basic routing scenario. I have a basic web service and test client setup. I want the ESB to route a message from the test client to the web service. I also want the ESB to determine where the web service’s endpoint is by calling out to a UDDI server.

What I’ll be showing is how this can be implemented using the basic routing capabilities of the ESB 2.0. I’ll take you through the process of setting this up from start to finish.  We setup the BizTalk components, define the Itinerary (which defines the process flow within the ESB) and we’ll test the end to end process. If any of those terms were new for you (i.e. itineraries, biztalk, uddi etc), then I would recommend you take a bit of time and review the basic concepts of the ESB guidance.

Those of you that worked with the ESB guidance 1.0 will already know how to implement the scenario that I just outlined. However one of the great new features of v2.0 is the the new visual itinerary design tool. It is an incredibly welcomed addition to the guidance as we no longer need to write the raw XML that itineraries are made of. 

Due to the size of the file, I’ve had to zip it and split it into 7 files. Be sure to download all of them before and then extra them into the AVI.

File 1

File 2

File 3

File 4

File 5

File 6

File 7

Hopefully this helps those of you who are new to the guidance and helps you to get using it more quickly.

Cheers and Keep on BizTalking…

Peter

Siftables – Lego Brought into the New Age

I just came across a great demonstration of a fantastic new piece of kit.

Siftables they’re called (shot this month) that ‘interact’ and play
with each other on a desk, table what ever.

CubeWorld guys was something I’d had my eye on for a while…..

 

Siftables takes it far beyond the next level, check it out for yourself.

http://www.ted.com/index.php/talks/david_merrill_demos_siftables_the_smart_blocks.html

Gotcha when Exporting Adapter Config in Binding Files

Originally posted by Nick Heppleston at: http://www.modhul.com/2009/02/17/gotcha-when-exporting-adapter-config-in-binding-files/
This one caught me out today – hope it might help others in the future…
If you export Bindings to get the lovely syntax for the ReceiveLocationTransportTypeData element, make sure that all of the properties in the adapter configuration dialog that you are interested in are populated *before* you do […]

Speaking in San Diego tonight (Feb 17 2009) – Microsoft’s SOA offerings

I’ll be speaking at the ASP.NET SIG of the San Diego .NET User Group tonight. Abstract is below. Meeting starts at 6:00 at the Microsoft La Jolla office.

This is basically the same presentation Allan Naim and I did recently at the SOA BP conference in Redmond and at an internal Microsoft conference.

If the demo gods are willing (as I expect them to be), I’m planning to do my shinny new demo that ties together work I’ve been doing around Dublin, Azure, WF, WCF, BizTalk 2009 and ESB Guidance 2.0.

Session Abstract:

With so many technologies to choose from, Solution Architects often find themselves unsure of what the right technologies are to address their solution needs. With the recent announcement of Microsoft’s new “Dublin” application server capabilities, architects and developers have more choices than ever and the challenge is selecting and integrating the right technologies in order to ensure that IT is agile, and that business needs are met. The goal of this session is to provide you with a holistic view of Microsoft SOA technologies focusing on building the right architecture to address specific SOA capabilities around integration, messaging, security and management using technologies such as BizTalk Server 2009, ESB Guidance v2, Managed Services Engine, .NET 4.0 and Dublin. We will look at the value each piece adds to the overall picture, and how they can be integrated in a holistic solution.

Technorati Tags: SOA,ESB,Dublin,BizTalk,.NET,WF,WCF

BizTalk 2006 R2 EDI Gotcha: Sending 997s in Response to Received 997s

I was seeing a weird behavior where I thought BizTalk 2006 R2 was sending a 997 in response to a received 997. The real reason was because I had a send port filter that looked like the following:

You’ll notice that I’m subscribing to a receive port where general X12 documents are received, including 850s and 997s. The Trading Partner is set up to generate a 997. The real gotcha here is that there are two types of 997s, ones generated from the EDI receive pipeline known as EDI.IsSystemGeneratedAck promoted context property and ones received from your trading partner.

If you don’t set another filter to look like the following, you’ll be sending your trading partner’s 997s back to them.