EDIT 11/10/2011 I only posted this yesterday but I wanted to fix up some possibly confusing/misleading statements.

One of the problems we see with BizTalk Enterprise build outs is that in some scenarios and with some limitations there is no out of the box way to get complete High Availability if you don’t have a hardware load balancer.  For example, if you have BizTalk webservices you’ll want NLB. If your don’t have a hardware load balancer in the datacenter you’ll install Windows NLB on IIS. Ok great, but now that you have Windows NLB installed on the BizTalk nodes, you won’t be able to cluster the BizTalk hosts which run the FTP, SMTP, MSMQ or Database readonly extract  receive locations. If you have two active hosts receiving using any of those, you will end up with duplicate messages. The above assumes that you have only two BizTalk Enterprise nodes, not four. If you had four (or more), you could Windows NLB two nodes, and cluster two nodes.

We have a product that solves this conundrum. http://www.burch.com.au/home/Products

Due to unavoidable limitations in the protocols, the BizTalk adapters for FTP, POP3 and MSMQ require Microsoft Clustering Services to achieve high availability and avoid the processing of duplicate messages. There are two drawbacks to this.

1. The complexity of configuring and maintaining Microsoft Clustering Services on the BizTalk nodes.

2. Microsoft Clustering Services cannot coexist with Windows Network Load Balancing (NLB).

Burch Consulting offers an alternative.

The BTS Monitor and Failover Service is a product that removes the need to cluster the BizTalk Server nodes whilst still achieving full redundancy. It works like this: A windows service monitors the primary node A and turns on the failover host (containing the FTP/POP3 receive locations) on Node B in case of failure on Node A. This windows service ensures that only one node is ever processing FTP/POP3 messages and ensures high availability in case of failure. Because this utility allows only one node to be active, the possibility of receiving duplicate messages is removed. This windows service runs actively on both nodes concurrently to provide high availability to the failover process.

In addition to the above mentioned protocols this component can provide HA for database (SQL Server or Oracle) receive locations which perform READ ONLY data extracts.

 

The BizTalk terminator tool is now hosted on Microsoft downloads at

http://download.microsoft.com/download/4/8/C/48C1808A-6014-4DA9-8C6B-C8FDCAE6E557/BTSTerminator.zip

Luckily this terminator won’t sleep with the housekeeper….

 

Just putting this here for future reference.

When using a temporary installation account to build BizTalk environments the SQL Agent Job owner becomes that temporary account. Which is fine until that temporary account is deleted at the end of the project and all the jobs stop working. (Saw a client recently whose jobs hadn’t been running for 3 months).

Anyway going in after installation and manually changing the owner is a pain so I created this script.

 

Run this:

USE [MSDB]
GO

SELECT 'EXEC msdb.dbo.sp_update_job @job_name=N'''+NAME+''' , @owner_login_name=N''sa''' FROM msdb.dbo.sysjobs where name like '%biztalk%'

Then copy and paste the output and run that. Here’s what I ran…

EXEC msdb.dbo.sp_update_job @job_name=N'Backup BizTalk Server (BizTalkMgmtDb)' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'CleanupBTFExpiredEntriesJob_BizTalkMgmtDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'DTA Purge and Archive (BizTalkDTADb)' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'MessageBox_DeadProcesses_Cleanup_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'MessageBox_Message_Cleanup_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'MessageBox_Parts_Cleanup_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'MessageBox_UpdateStats_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'Monitor BizTalk Server (BizTalkMgmtDb)' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'Operations_OperateOnInstances_OnMaster_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'PurgeSubscriptionsJob_BizTalkMsgBoxDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'Rules_Database_Cleanup_BizTalkRuleEngineDb' , @owner_login_name=N'sa'
EXEC msdb.dbo.sp_update_job @job_name=N'TrackedMessages_Copy_BizTalkMsgBoxDb' , @owner_login_name=N'sa'

Microsoft has released an article and sample for consuming RESTful services from BizTalk. This is a good treatment of the topic, a topic which has been inadequate until now.

Article: http://social.technet.microsoft.com/wiki/contents/articles/invoking-restful-web-services-with-biztalk-server-2010.aspx

Sample: http://code.msdn.microsoft.com/Invoking-ReSTful-Web-with-776ceb78 

Good stuff!!

 

This Gartner report has Microsoft as the clear leader on the “ability to execute” axis and has it riding high in the leaders quadrant against IBM, Oracle, Tibco and Software AG. This is important for guys like me who implement Microsoft integration technologies for clients as it gives us a clear credibility boost against competitive technologies from other vendors.

At Burch Consulting we’re running BizTalk Server Administrator training from Nov 17-19. In Sydney. Contact mark AT burch.com.au if you’re interested.

From the install guide….

 

Each CAB file contains localized versions of the following software:·

· Microsoft Office 2003 Web Components (OWC11) Version 4

· Microsoft .NET Framework 4 and 3.5 SP1

· SQLXML 4.0 with SP1

· ADOMD.NET 9.0

· ADOMD.NET 10

 

Language

Windows Server 2008 32-bit Edition

EN

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x409

CN

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x804

DE

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x407

ES

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x40a

FR

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x40c

IT

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x410

JA

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x411

KO

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x412

TW

http://go.microsoft.com/fwlink/?LinkID=189407&clcid=0x404

Language

Windows Server 2008 64-bit Edition

EN

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x409

CN

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x804

DE

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x407

ES

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x40a

FR

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x40c

IT

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x410

JA

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x411

KO

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x412

TW

http://go.microsoft.com/fwlink/?LinkID=189408&clcid=0x404

Language

Windows Server 2008 R2

EN

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x409

CN

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x804

DE

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x407

ES

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x40a

FR

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x40c

IT

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x410

JA

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x411

KO

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x412

TW

http://go.microsoft.com/fwlink/?LinkID=189409&clcid=0x404

 

A client of mine was struggling to get ENTSSO clustered even though he was following the documentation to the letter.

The command he was running was:

C:\Program Files\Common Files\Enterprise Single Sign-On>ssoconfig –restoresecret d:\sso\SSOBA50.bak
Password reminder : asm sa default password
Password : ********
ERROR: 0x8007051B : This security ID may not be assigned as the owner of this object.

 

The error, as you can see is some weird security error. I told him to run  the CMD prompt as administrator (right click run as administrator) and it worked no problem. Problem solved. Client happy.

All the SSOCONFIG and SSOMANAGE commands should probably be run as administrator so as to not be tripped up like this…

 

I’m on a BizTalk project at the moment where we need to call a bunch of PL/SQL packages in OEBS. No matter what we did and what we tweaked the OEBS adapter failed with the following error:

"ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array"

We spent days running around trying to resolve it. We tweaked the MaxOutputAssociativeArrayElements every which way from Sunday.

If we set it to 26214 we’d get “ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array". If we set it to a bigger value, such as 524287, the BizTalk BTSNTSvc.exe host process would blow up.

We focused on the index array not being big enough, but we should have been looking in the other direction. Eventually the Oracle DBA had a bright idea.

In the packages there were some loops. The loops were being initialised as indx := 0;  The DBA switched it to indx := 1; and the bloody thing worked.

Problem: OEBS Adapter gives "ORA-06513: PL/SQL: index for PL/SQL table out of range for host language array"

Resolution 1: Make sure MaxOutputAssociativeArrayElements is big enough to hold your result arrays. (we used 32000)

Resolution 2: Make sure any loops in the PL/SQL packages are not initialising from zero.

 

The BizTalk product group guys at Microsoft have been helping us with  this issue…they may have some updates on it. Will update this post if anything interesting comes out.

 

Everywhere I go now, the first thing I do before I do anything else, is install these two hotfixes. They solve a bunch of extremely painful BizTalk 2009 development issues.

BizTalk Server 2009 Orchestration Designer incorrectly indicates that there is an error in a BizTalk Server 2009 project http://support.microsoft.com/?kbid=979153

 

You experience various problems when you develop a BizTalk project that references another BizTalk project in Visual Studio on a computer that is running BizTalk Server 2009
http://support.microsoft.com/?kbid=977428

 

One gotchya to watch out for is that if you do a repair of either BizTalk or Visual Studio, (or in our case recently, reinstalled VS2008 SP1 in order to get the TFS client working) you will have to reinstall these hotfixes as well.