Posts

About Zombies and Convoys...

Image
This week was Load Testing week for our latest set of Interfaces. Incidentally, this was our first set of Interfaces which implemented Uniform Sequential Convoys in their Orchestrations. The implementation was more or less like my previous post . Meaning the convoys had a timeout mechanism, which lead the Orchestration to completion, if no new messages would arrive for a period of time. So far - so good. But under a realistic amount of load, we observed that almost 1 out of every 5-6 messages would fail to go through to the destination. The HAT would show the following: Completed with discarded messages Of course the 1/5 is a very subjective number, depending upon the actual convoy implementation in question. After some snooping around (mostly at Lee Graber’s blog ), I figured out that the source of the problem. But no amount of the aforementioned snooping yielded any easy and/or elegant solution to this little pickle. What happens is that the control might pass to the delay branch of

'Non-Deterministic' Sequential Convoys

Image
A long, long break between posts. Actually was working on some custom adapters, which kinda left me with little to post. Anyways, today morning a colleague of mine was facing a problem with Sequential Convoys . He didn’t know how many messages he was going to receive in a particular convoy. Consequently, he didn’t know how many times to loop the Receives that follow the co-relation set (Hence, the "Non-Deterministic" in the title). A simple solution exists to solve this problem. Use a Listen shape! A Listen shape with the Following Receive(s) in one branch and a Delay shape in the other, provides us with a graceful 'Timeout' kind of mechanism. Here’s a screen shot of how to plug in the Listen logic in your sequential convoys. Most information in my previous post about Uniform Sequential Convoys holds true in this case too. Post a comment if you need any clarifications.

The South-East Asia Earthquake and Tsunami

Totally off topic but very important nevertheless. For those of you who wish to find the right places to contribute towards the Relief Operations for Tsunami victims in South-Asia, please visit the following link. The South-East Asia Earthquake and Tsunami

Getting the BizTalk SQL Server DB Name

A quick one. How to get the name of the SQL Server that BizTalk is running? A relatively easy way is to get it from the registry. Heres a code sippet that does just that. string strBtsSvrSubKey = "Software\\Microsoft\\BizTalk Server\\3.0\\Administration"; string strBtsSqlSvrKey = "MgmtDBServer"; Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(strBtsSvrSubKey); string strBtsSqlSvrName = key.GetValue(strBtsSqlSvrKey).ToString(); Any queries, post a comment.

HIPAA Accelerator 3.0 Error deciphering

The BizTalk Accelerator for HIPAA 3.0 throws up a mighty detailed error in the event log when it fails during Xml to EDI translation and/or validation. These errors tend to look a little scary (they scared me at the very least). An example would be : Status report details: SRH DevBT03 200411122204111 DEFAULT 2 DEFAULT SRM 00000000 00010168 101 0 837 004010HC09translate failed 0000010000010000000000010 10168 SRE 0010 30 ProcessSegment 00053 000 TS837Q1_2420A_NM103__RenderingProviderLastOrOrganizationName source format: [101 0 ,XML 1.0]\r\nsource document: [837 004010DEFAULT X X098A1,Health Care Claim: Professional]\r\nsource segment: [data#53,def#232,name=TS837Q1_2420A_NM1_RenderingProviderName]\r\nsource element: [def#4,elm#0,comp#0,name=TS837Q1_2420A_NM103__ RenderingProviderLastOrOrganizationName], (msgnr:1 segnr:53)(line:2 pos:11671 filepos:11953) Look for the last numeric code following the SRE element. In this case its 001030. Ignore the 0010 part and you are left with

HIPAA Accelerator 3.0 Gotchas

I stumbled across a couple of things w.r.t the BTS 2K4 and the HIPAA Accelerator 3.0, which I feel are worthy of a mention. SQL Server 2000 client components are needed on the BizTalk boxes when SQL Server 2000 is installed on a separate box. DTC (Distributed Transaction Coordinator) must be enabled for Network Access (via Windows Component Setup) on all computers participating in the configuration, administration and message processing. The user under which the HIPAA EDI windows service is configured to run, must be a member of the BizTalk Application Users group. All HIPAA 3.0 schemas should be validated using the XSD2EDI utility located at ......Program Files\Microsoft BizTalk Accelerator for HIPAA 3.0\HIPAA_EDI\Subsystem at least once (on all BizTalk boxes where HIPAA is installed) before the HIPAA Accelerator can start processing messages. For multi-box BizTalk Installations you might want to consider making the HIPAA Documents Home directory a network share. For ANSI 835p th