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

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

A colleague of mine was discussing my blog post “Routing exceptions on send ports to the ESB Exception Management Portal without turning on routing for failed messages (Part 1)” with me since he wanted to implement the pattern on his own project, but he wanted to take this a bit further. He wanted for the […]
Blog Post by: Johann

Enabling Authentication/Authorization on a BizTalk WCF-NetMsmq Receive Location using Transport Security and ACLs

Enabling Authentication/Authorization on a BizTalk WCF-NetMsmq Receive Location using Transport Security and ACLs

I’ve recently been working on a project that uses a WCF-NetMsmq receive location which points to a transactional private queue to receive messages into BizTalk Server 2010 (note that this is on a Windows Server 2008 R2 machine, experiences might differ slightly with different versions of the OS which come packaged with different versions of […]
Blog Post by: Johann

BizTalk Summit 2013, London. Brought to you by Microsoft + BizTalk360

The fire is on in the BizTalk land, following the recent BizTalk Summit 2012, held in Redmond on 10th and 11th of December. Microsoft is organising a near repeat of the event in Europe at Amsterdam, London and Stockholm on 15th, 16th and 17th of January respectively. BizTalk Innovation Day renamed to BizTalk Summit 2013 […]

The post BizTalk Summit 2013, London. Brought to you by Microsoft + BizTalk360 appeared first on BizTalk360 Blog.

Blog Post by: Saravana Kumar

Sample Windows Azure Virtual Machines PowerShell Scripts

I sometimes show a platform that requires a bunch of Windows Azure virtual machines. It has 1 Active Directory domain controller (n123dc1), 3 SQL Server VMs for database mirroring (n123sql1, n123sql2, and n123sp20131 which also happens to have a SharePoint Server 2013 installed), and 2 members of a SharePoint 2012 Web Front End.

Between two demo sessions, I keep the VHD files in Windows Azure blob storage, as well as the virtual network because they don’t cost too much, but I don’t let the virtual machines deployed so that they don’t cost anything.

In order to restart the whole platform I use the following script (I slightly obfuscated one or two values).

 

#region init
Import-Module 'c:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1'

$subscription = 'Azdem169B44999X'
Set-AzureSubscription -SubscriptionName $subscription -CurrentStorageAccount 'storrageazure2'
Set-AzureSubscription -DefaultSubscription $subscription

$cloudSvcName = 'n123'
#endregion

#region DC
$vmName='n123dc1'
$disk0Name = 'n123dc1-n123dc1-0-20120912092405'
$disk1Name = 'n123dc1-n123dc1-0-20120912105309'
$vNetName = 'Network123'
$subNet = 'DCSubnet'

$vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize ExtraSmall -Name $vmName -Label $vmName |
    Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |
    Set-AzureSubnet $subNet |
    Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50101

New-AzureVM -ServiceName $cloudSvcName -VMs $vm1 -VNetName $vNetName
#endregion

#region SQL Server
$vmName='n123sql1'
$disk0Name = 'n123dc1-n123sql1-0-20120912170111'
$disk1Name = 'n123dc1-n123sql1-0-20120913074650'
$disk2Name = 'n123dc1-n123sql1-1-20120913080403'
$vNetName = 'Network123'
$subNet = 'SQLSubnet'
$availabilitySetName = 'SQL'

$sqlvms = @()

$vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Medium -Name $vmName -Label $vmName -AvailabilitySetName $availabilitySetName |
    Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |
    Add-AzureDataDisk -DiskName $disk2Name -Import -LUN 1 |
    Set-AzureSubnet $subNet |
    Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50604 |
    Add-AzureEndpoint -LocalPort 1433 -Name 'SQL' -Protocol tcp -PublicPort 14330

$sqlvms += ,$vm1

$vmName='n123sql2'
$disk0Name = 'n123-n123sql2-0-20121120105231'
$disk1Name = 'n123-n123sql2-0-20121120144521'
$disk2Name = 'n123-n123sql2-1-20121120145236'
$vm2 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Small -Name $vmName -Label $vmName -AvailabilitySetName $availabilitySetName |
    Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |
    Add-AzureDataDisk -DiskName $disk2Name -Import -LUN 1 |
    Set-AzureSubnet $subNet |
    Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50605 |
    Add-AzureEndpoint -LocalPort 1433 -Name 'SQL' -Protocol tcp -PublicPort 14331

$sqlvms += ,$vm2

New-AzureVM -ServiceName $cloudSvcName -VMs $sqlvms
#endregion

#region SharePoint
$vmNamesp1='n123sp1'
$vmNamesp2='n123sp2'
$disk0Namesp1 = 'n123-n123sp1-2012-09-13'
$disk0Namesp2 = 'n123-n123sp2-2012-09-13'
$vNetName = 'Network123'
$subNet = 'SharePointSubnet'
$availabilitySetName = 'WFE'

$spvms = @()

$vm1 = New-AzureVMConfig -DiskName $disk0Namesp1 -InstanceSize Small -Name $vmNamesp1 -Label $vmNamesp1 -AvailabilitySetName $availabilitySetName |
    Set-AzureSubnet $subNet |
    Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50704 |
    Add-AzureEndpoint -LocalPort 80 -Name 'HttpIn' -Protocol tcp -PublicPort 80 -LBSetName "SPFarm" -ProbePort 80 -ProbeProtocol "http" -ProbePath "/probe/"
$spvms += ,$vm1

$vm2 = New-AzureVMConfig -DiskName $disk0Namesp2 -InstanceSize Small -Name $vmNamesp2 -Label $vmNamesp2 -AvailabilitySetName $availabilitySetName |
    Set-AzureSubnet $subNet |
    Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50705 |
    Add-AzureEndpoint -LocalPort 80 -Name 'HttpIn' -Protocol tcp -PublicPort 80 -LBSetName "SPFarm" -ProbePort 80 -ProbeProtocol "http" -ProbePath "/probe/"
$spvms += ,$vm2

New-AzureVM -ServiceName $cloudSvcName -VMs $spvms
#endregion

#region SharePoint 2013 and SQL Server witness
$vmName='n123sp20131'
$disk0Name = 'n123-n123sp20131-0-20121120104314'
$disk1Name ='n123-n123sp20131-0-20121120220458'
$vNetName = 'Network123'
$subNet = 'SP2013Subnet'
$availabilitySetName = 'SQL'

$vm1 = New-AzureVMConfig -DiskName $disk0Name -InstanceSize Small -Name $vmName -Label $vmName -AvailabilitySetName $availabilitySetName |
    Add-AzureDataDisk -DiskName $disk1Name -Import -LUN 0 |
    Set-AzureSubnet $subNet |
    Add-AzureEndpoint -LocalPort 3389 -Name 'RDP' -Protocol tcp -PublicPort 50804 |
    Add-AzureEndpoint -LocalPort 80 -Name 'HttpIn' -Protocol tcp -PublicPort 8080

New-AzureVM -ServiceName $cloudSvcName -VMs $vm1
#endregion

In order to stop the whole platform, I use the following script:

 

#region init
Import-Module 'c:\Program Files (x86)\Microsoft SDKs\Windows Azure\PowerShell\Azure\Azure.psd1'

$subscription = 'Azdem169B44999X'
Set-AzureSubscription -SubscriptionName $subscription -CurrentStorageAccount 'storrageazure2'
Set-AzureSubscription -DefaultSubscription $subscription

$cloudSvcName = 'n123'
#endregion

#region shutdown and delete
echo 'will shut down and remove the following'
Get-AzureVM -ServiceName $cloudSvcName | select name
Get-AzureVM -ServiceName $cloudSvcName | Stop-AzureVM
Get-AzureVM -ServiceName $cloudSvcName | Remove-AzureVM
#endregion

 

In order to get started, I read Michael Washam’s blog.

 

Benjamin

Blog Post by: Benjamin GUINEBERTIERE

BizTalk deployment – How do YOU do it?


For the deployment of BizTalk applications we use a custom made tool within my company Cnext. Now I was curious to have some feedback from the community on the deployment of BizTalk applications. How do you handle the biztalk deployments at your company?
Our deployment manager tool is based on the idea to store all used objects in a database model (BizTalk artifacts, but also stuff like MSMQ, file locations, SQL objects, etc. ). Most of these objects are added using auto discovery of the BizTalk databases, so manually adding of objects is reduced to a minimum. Above all, BizTalk artifacts can have a different configuration (binding) defined per environment (test, dev, prod, ).
It also allows you to define all dependencies. Again most of these dependencies will be defined by the tool automatically.
This way of working makes it possible for the tool to define which actions need to be taken to deploy a certain application (or just a part of the application or only some objects). The deployment manager tool will defin which objects need to be removed and redeploy (also unenlisting/disabling en starting/enabling artifacts will be done by itself). As a result, using the tool will allow us to deploy much faster, because the objects to redeploy is reduced to an absolute minimum and now complete redeploy is needed (like BizTalk Deployment framework does for example).
Another very useful and much used functionality is the possibility to define complete business/functional flows, including some generic components. This makes sure you can also deploy or redeploy a complete (new) flow (like an order flow for example) by itself, including all necessary objects (as well receive as send ports, file locations, etc. ).
The deployment can be done cross BizTalk application. So the separation in applications is no longer deployment dependent.
The most important part is to set the database model correct en keep it this way this will guarantee a much easier and faster deployment, where each environment has its own version of the current deployed objects.
Please answer following questions:
  1.      Is your BizTalk deployment automated (BizTalk deployment framework, custom scripting with MSBuild or BTSTask, powershell scripts, etc. ), or do you just do manual deployment using MSI and binding files?
  2.        Which deployment tools or scripts are you using, or have you used before? And what are your thoughts of these tools (benefits and complaints)?
  3.        What do you think of a tool like our custom deployment manager tool (using autodiscovery, etc. )?

Thanks for your replies.
 When there is enough feedback, I’ll devote a new post on my analysis.

White Paper: Supportability and operations of Microsoft BizTalk Server

My first white paper on BizTalk Server has been published through my company motion10. The title is Supportability and operations of BizTalk Server. It can be downloaded through this link.

The white paper will discuss supportability of BizTalk Server. Something you should be thinking of when setting up a BizTalk environment or when your current environment lacks or needs improvement in that aspect.

Thinking about supportability of BizTalk from the very beginning should be one of the best practices that organizations need to implement. Because the team responsible for supporting the BizTalk Server environment is not involved at the beginning, during the deployment of the environment or are pulled into a project at the very end, in many projects the supportability is overlooked or not part of the initial project plan. This will lead to increasing costs of supporting the BizTalk environment as the administrators are ill prepared, poorly trained or may lack the necessary skills, and even worse given a poorly performing, not well designed and/or unhealthy BizTalk environment to support.  
This white paper will provide you with a process you can follow up, the necessary set of tools and guidance to implement a sustainable and robust BizTalk environment that can be efficiently supported by your technical staff.
 

To write this paper I used my experience in the field and received valuable input from people that helped me with this paper. Many thanks go to the following people for their time, input and reviewing this paper in their precious (spare) time; colleagues Marnix Cox, Andre Ruiter and Sander Nefs, fellow Microsoft Integration MVPs Gijs in ’t Veld, Sandro Perreira, Nino Crudele, Saravana Kumar and Kent Weare, and dedicated BizTalk community members Tord G. Nordahl and Hendrik Roth.

I hope you enjoy reading this paper. Any comments or suggestions are welcome and can be sent to SteefJan@msndotcom

Cheers,

Steef-Jan

BAMAlerts – The activation state cache could not be updated.

BAMAlerts – The activation state cache could not be updated.

If you have log shipped or detached/attached the BAMAlerts databases, you will have issues starting the notification service on the BizTalk server for BAM alerts. The reason for this, when these databases are restored, the the ‘Cross-Database Ownership Chaining’ option on the BAMAlertsApplication and BAMAlertsNSMain databases is disabled and greyed out. Greyed out because it […]
Blog Post by: DipeshA