We are presenting BizTalk360 at – BizTalk Summit 2012

After a very long gap, Microsoft is organising a dedicated BizTalk event "BizTalk Summit 2012". The summit is invite only and its not advertised anywhere outside the closed community of existing customers, partners, MVP’s and few more.  There is a limit of 2 attendees per company. It’s a 2 days event held at Microsoft Conference […]

The post We are presenting BizTalk360 at – BizTalk Summit 2012 appeared first on BizTalk360 Blog.

Blog Post by: Saravana Kumar

How to repair "Suspect" database

We were testing some throttling parameters in BizTalk, and for that we were pumping lots of load into our test environment. The system soon became unstable and we had to do a hard restart. After the restart, when we opened the SQL enterprise manager we spotted some of the databases are in "Suspect" state as […]

The post How to repair "Suspect" database appeared first on BizTalk360 Blog.

Blog Post by: Saravana Kumar

Routing exceptions on send ports to the ESB Exception Management Portal without turning on routing for failed messages

Routing exceptions on send ports to the ESB Exception Management Portal without turning on routing for failed messages

The ESB Exception Management Portal has made it a whole lot easier to drive exception handling and alerting within BizTalk applications however it does come at a price when you’re dealing with exceptions encountered on send ports. In order to route a failed message to the ESB Portal one must turn on routing for failed […]
Blog Post by: Johann

Using the SB-Messaging Adapter & ESB Toolkit to send messages to the Windows Azure Service Bus

BizTalk Server 2013 Beta introduces the new SB-Messaging adapter to send and receive message from the Windows Azure Service Bus entities like Queues, Topics, and Relays. The topics on MSDN provide instructions on how to configure an SB-Messaging receive location and a send port to receive and send messages from the Service Bus but there is no information provided on how to do it with the ESB Toolkit.
I really like the ESB Toolkit concept but it’s not quite finished so if you want to sent a message to a Service Bus Queue in Windows Azure it will not work out of the box.

 

Modifying and Extending the BizTalk ESB Toolkit

There is no SB-Messaging Adapter Provider in the ESB Toolkit so to make it work you will have to create a Custom SB-Messaging Adapter Provider. Furthermore is also a Custom Routing Service needed. The Routing Service of the ESB Toolkit set’s all the necessary properties on the Dynamic Send Port but the Authentication Properties and the Brokered Message Properties from the SB-Messaging adapter have to be set on the message as context properties.

To create a custom SB-Messaging Adapter Provider x
1. Create an assembly that derives from the BaseAdapterProvider base class and contains a SetEndPoint method that sets the endpoint context properties of the message.
 
2. Register the adapter provider by adding it to the Esb.config configuration file using an <adapterProvider> element.
<adapterProvider name="SB-Messaging" type="itHero.ESB.Adapter.SBMessaging.AdapterProvider, 
itHero.ESB.Adapter.SBMessaging, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cdb4e8bc8e6104aa" 
moniker="SBMessaging" />

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 
3. Create a Manifest File for Custom Adapter Properties
When creating a custom adapter provider, you must also provide designer support for the adapter

provider to those resolver extenders that display an endpoint configuration property. To enable designer support, it is necessary to create an adapter provider manifest file. The manifest file should be placed in

the same folder as the Itinerary Designer binaries:

C:\Users\MyUser\AppData\Local\Microsoft\VisualStudio\11.0\Extensions\ncg5g43x.y5w

<?xml version="1.0" encoding="utf-8" ?>
<adapterPropertyManifest adapterName="SB-Messaging">
    <aliases>
        <alias name="globalPropertySchemas" value="Microsoft.BizTalk.GlobalPropertySchemas, 
        Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
    </aliases>
    <properties>
        <property name="IssuerName" type="WCF.IssuerName" assembly="globalPropertySchemas" />
        <property name="IssuerSecret" type="WCF.IssuerSecret" assembly="globalPropertySchemas" />
        <property name="StsUri" type="WCF.StsUri" assembly="globalPropertySchemas" />    
        <property name="Label" type="SBMessaging.Label" assembly="globalPropertySchemas" />    
    </properties>
</adapterPropertyManifest>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

4. Register the new assembly in the global assembly cache.
 
 
To create a Custom Itinerary Messaging Service
1. Create a custom routing service that is based on the RoutingService in the Microsoft.Practices.ESB.Itinerary.Services Assembly. I used Reflector to get the code from the

RoutingService class.
 
2. Add extra code to set the URI for the Service Bus Access Control Service STS endpoint, the issuer name and the issuer key for the Service Bus namespace because the properties are not set on the adapter, but

on the message as context properties. Also the Brokered Message Properties are set on the message as context properties.
//Set WCF-properties
msg.Context.Write("IssuerName", http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties, 
endpointConfigItems["IssuerName"]); msg.Context.Write("IssuerSecret", http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties,
endpointConfigItems["IssuerSecret"]); msg.Context.Write("StsUri", http://schemas.microsoft.com/BizTalk/2006/01/Adapters/WCF-properties,
endpointConfigItems["StsUri"]); //Set BrokeredMessage-properties msg.Context.Write("Label", http://schemas.microsoft.com/BizTalk/2012/Adapter/BrokeredMessage-properties,
endpointConfigItems["Label"]);

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 
3. Register the Custom Itinerary Messaging Service by adding it to the Esb.config configuration file using

an <itineraryService> element.
<itineraryService id="10000" name="itHero.ESB.Itinerary.Services.ServiceBusRouting" 
type="itHero.ESB.Itinerary.Services.ServiceBusService,
itHero.ESB.Itinerary.Services, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=191980cbfe160b14"
scope="Messaging" stage="AllReceive"/>

.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, “Courier New”, courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }

 
4. Register the new assembly in the global assembly cache.

 

Creating the itinerary

1. Create an itinerary that contains the Custom Service Bus Routing Service. Use a Resolver to set the

SB-Messaging Adapter Provider.
 
2. Set the adapter name and the location of the Azure Queue in the resolver for the Service Bus Routing Service.
 
3. Click Access Key in the Azure Management Portal to obtain the credentials associated with your

queue.
 
4. Set the Authentication properties and Brokered Message Properties in the Endpoint Configuration pop-up.
 

 

Testing the sample

1. In Windows Explorer, open the folder \Source\Samples\Itinerary\Source\ESB.Itinerary.Test where you installed the %u200bMicrosoft BizTalk ESB Toolkit samples, and then start the application named Esb.Itinerary.Test.exe.
 
2. Run WireShark to verify that the authentication was successful.
 
3. Run the Service Bus Explorer to get the XML message that is sent to the Azure Service Bus Queue.

Here you can also view the Brokered Message Properties that are set on the message

 

Conclusion

It is unfortunate that the SB-Messaging adapter provider is not available out of the box in the ESB Toolkit. You can easily expand the ESB Toolkit but it’s not extensively documented so it took me quite some time to create the Custom Messaging Service and the SB-Messaging Adapter Provider to set the necessary properties,.

You can download the Custom Messaging Service and the SB-Messaging Adapter Provider with the source code here:

http://code.msdn.microsoft.com/Using-the-SB-Messaging-38230f9e

BizTalk Innovation Day, London – Charles Young and Jon Fancey confirmed as Q&A panellists

We are ramping up our preparation for BizTalk Innovation Day London http://bid.biztalk360.com . You can read more about it in the detail blog post here "BizTalk Innovation Day, London. 16th January 2013" We wanted to make it big and exclusive for people who are involved in the Microsoft BizTalk server space. We originally planned for […]

The post BizTalk Innovation Day, London – Charles Young and Jon Fancey confirmed as Q&A panellists appeared first on BizTalk360 Blog.

Blog Post by: Saravana Kumar

BizTalk, SalesForce and timezone

I had the interesting request that it was important to a system (SalesForce) to set the right time including the timezone.

So I created a .Net function with a string as input and a string as output. This function is call from a map. Here are the function:

DateTime myDateTime = Convert.ToDateTime(input);
TimeZoneInfo tzi = TimeZoneInfo.FindSystemTimeZoneById(“W. Europe
Standard Time”
);
TimeSpan offset =
tzi.GetUtcOffset(myDateTime);
DateTimeOffset d = new DateTimeOffset(myDateTime, offset);
string
output = d.ToString(
“o”);

The Id of the zone can be found by running through all the names by running this code:

ReadOnlyCollection<TimeZoneInfo> zones = TimeZoneInfo.GetSystemTimeZones();
Console.WriteLine("The local system has the following {0} time zones", zones.Count);
foreach (TimeZoneInfo zone in zones)
   Console.WriteLine(zone.Id);
The result is in a format that this, which also takes care of DST (Daylight saving time):
2012-07-02T02:12:00.0000000+02:00 (input --> 02-07-2012 02:12) 2012-02-28T14:00:00.0000000+01:00 (input --> 28-02-2012 14:00)

Random posts:

Help me, help you. You know how 😉 (click, click, click…)


SQL Server Configuration Manager – Error 0x80041010

SQL Server Configuration Manager – Error 0x80041010

When opening the SQL Server Configuration manager (for SQL Server 2008 R2 in my case), I kept getting following error:

Cannot connect to WMI provider. You do not have permission or the server is unreachable. Note that you can only manage SQL Server 2005 and later servers with SQL Server Configuration Manager. Invalid class [0x80041010]

The solution to resolve this turned out to be quite simple. Just open a command prompt and execute following command:

C:\Program Files\Microsoft SQL Server\100\Shared>mofcomp “C:\Program Files\Microsoft SQL Server\100\Shared\sqlmgmproviderxpsp2up.mof”

Depending on the SQL version installed the path to the file could also be something like C:\Program Files\Microsoft SQL Server\90\Shared\sqlmgmproviderxpsp2up.mof

New minor release of BizTalk Scheduled Task Adapter for BizTalk Server 2010 is now available

New minor release of BizTalk Scheduled Task Adapter for BizTalk Server 2010 is now available

Finally I had some free time available to be able to update and fix some minor bugs which existed in the latest version of this adapter and already had been reported by community members. I have to give a special thanks to maakku that reported a problem related to the Daily schedule properties and the […]
Blog Post by: Sandro Pereira