Monday, December 1, 2014

BizTalk 360 Full 360

Given that this week on the 3rd will mark the start of the Integrate 2014 summit. Of which BizTalk 360 is the key organiser/sponsor.

I have taken the time to fully review BizTalk 360, and provide a downloadable version of this for your reading, as to the pro's and cons of BizTalk 360 and where and when to use it.

Please download your copy, free here ConnexionTechnology/Articles/BizTalk360Review

The article is an open and honest view of actually using the product and providing a feature for feature review and details as to the real reality behind using the product.

At the end of the day you need to have the most informed view of using BizTalk 360, and I trust this provides it to you.


Sunday, November 9, 2014

Azure vs Amazon vs Rackspace vs HP vs Google: Cloud Storage

Sifting through the reams of information on the various enterprise cloud storage options can be pretty daunting.

Who's the best, and who gives me the best performance, well time to put them all to the test...

The good people at Nasuni have done this, not to steal their thunder, please check out a post here: View the excerpt of the report here

Download the Full Report from Nasuni

The end result winner... spoiler alert....

Microsoft Azure

Wednesday, October 15, 2014

Isolated host instances that won’t go away, even when you terminate them

This can possibly be Stopping you from deploying things?

There is a backdoor way, and I do not recommend this in production unless it’s your only option.

If you know the back end of BizTalk and the databases, all of these instances, are stored in the messagebox database. You need to go in here and remove them, all of a sudden they disappear.

First we need to find the instance we want to remove.

Get the instance ID from here.

Go off to the Message Box Database, in the instances table are all of your current instances, its best to only remove the one you are looking at.

To remove it, simply delete the row.

The instance is now gone from the admin console.

Another trick, is isolated adapter instances, typically have the same class id. Or in the table, the uidClassID.

You can get the class id, and delete ALL instances of isolated adapter, by using uidClassID as your parameter.

On all BizTalk environments I have looked at, this class ID seems to be the same.

Use this method with care, it is unsupported, and you do it at your own risk, usual disclaimer.

Tuesday, September 30, 2014

BizTalk Mapping Patterns & Best Practices

Sandro Pereira has written a cool e-book about mapping, I recommend getting a free copy.

The BizTalk Mapping Patterns and Best Practices book is a reference guide mainly intended for BizTalk developers to make their day-to-day lives easier. The book offers insights on how maps work, the most common patterns in real time scenarios, and the best practices to carry out transformations. The author has been working on this over the last one year, and his original idea of publishing these information as a blog changed in the due course to become a white paper, then finally to a “Community eBook” with about 400-pages and contributions from so many people.
Download it now from here please download now for free.

NOTE: The download link will link you to the BizTalk 360 website for the download, however after I was added to a dozen junk mail mailing lists following this registration, I would really recommend NOT using this site. Please refer to my blog post about BizTalk360

UPDATE: Sadly they have moved the object so you have to go through this process, please be aware of lots of junk mail following this.

Wednesday, August 20, 2014

WCF Send Port that Returns XML responses, CORRECTLY

Do you have a need to call out to SQL and obtain a set of results, typically this is done via the wizard, and typically it’s a flat structure, in that a single repeating list is sent.
What if you wanted more of a structured response, where the repeating list, has a repeating list within this, you can return multiple result sets, and have some kind of way of matching up the results, and create a rather complex map to do this, what if you have several of these structures, your timeframes to create this will blow out, and maintenance of this is extreme.
Did you know that SQL can produce this repeating, rather XML looking structure for you, with great ease?
This is one I have come across on several occasions, so I decided to blog it.
I will use a simple example to show you how to do this, and why it’s so much simpler.
I have a stored procedure, that accepts two parameters, [GetLoadTest] @Users,@Run
When using the wizard, I get this schema. The response is a typical stored procedure result set, of which is of limited use.
I am returning this:
The Schema for this is a repeating structure, with a child repeating structure. This is not easily going to work here. There is a funky xpath, xml object method which is both bad for performance, and requires code in an orchestration to make this work, and highly not recommended.
What if you could just have the message returned, actually return you message, as per your schema below. Well you can..... here is how.
Firstly my stored procedure that gets the results:
This will now return XML in my XML structure, as shown earlier, notice the NAMESPACE....
This is the schema for just this message, of which the Standard xml definition wizard can whip up for you.
Here is where the first part of magic occurs, you take the schema that the SQL wizard generated and modify the response node.
You add a reference to the LoadTestRecord Schema. Then you simply change the response message to be of this type, repeating, as below.
The next bit of magic is a pipeline component, these are typically used to turn the horrid things people send us into more meaningful things.
I am not going to bore you with the details, but the response that the WCF-SQL adapter give us, for a XML response message is not very nice, with CDATA nodes, and encoded XML content.
So I wrote a simple pipeline that will decode this mess and replace the StoredProcedureResultSet0 node, this is configurable in the properties of the pipeline...
The source code is attached here: Link TBA
Then it’s a simple as configuring your send port to use the pipeline. Create a pipeline that uses the pipeline component that I have, and the standard XML Disassembler pipeline component.
The send port
Select the receive pipeline.
Be sure to set the SOAP action.
Then your orchestration or even message subscription will receive the exact message that is specified in the schema, and mapping can take place on all the repeating nodes of repeating nodes.
VERY handy for client detail, further detail and extra detail, all of which are repeating.
You can use the standard out of box functionality, but this was a MUCH easier way of doing this, and the mapping was a breeze.
SQL does this as part of built in functionality and makes life a great deal easier.
It would however, as a NOTE TO THE PRODUCT GROUP... be much easier if there was a checkbox on the adapter properties, to say I am sending a XML response, and work out for me the schema based on the response, and not just default encode it in a very horrible way.