Posts

Devlopment: Hungarian Notation Sucks ...

Don't you just hate people using the so called Hungarian Notation in their C#/Java code. Well, I do. Here's an interesting read on this matter.

Linux: New chapter in DGP

Dr. Salus is back from holiday and released a new chapter in his series on "The Daemon, the GNU and the Penguin". Read it here .

Biztalk 2004: Per-Instance pipeling - Tool

Just found this interesting article . For each pipeline (Receive Locations and Send Ports each have a Receive and Send Pipeline respectively, but if a port uses a Request-Response message exchange pattern it will also have a corresponding pipeline for the other direction, so the Receive Port will have a Send Pipeline and the Send Port will have a Receive Pipeline) the configuration database holds another piece of configuration. In the ExplorerOM this can be found as the ReceivePipelineData (on the ReceiveLocation or SendPort object) or SendPipelineData (on the SendPort or ReceivePort object) property. This "data" is generally empty in most cases, but can be an XML document that overrides some or all of the properties of the components configured in the pipeline (note that the XML cannot add any addtional pipeline components)

Introduction ... better late than never ...

I've been running this blog for a few months now, without proper introduction. So now, I thougth, the time is ripe. My real name is Kenneth. I've been dragging the kennywest alias around since my first hotmail acount (which was also my first real e-mail address), which is why I used this alias for my blog as well. I'm a consultant implementing architectures/solutions for B2B and A2A scenario's. For the moment I am using Biztalk to do this. I've also used plain Java, Seebeyond's e*Gate and Crossworlds. Although I am working with Biztalk and .NET . I am not a, how should I put it, Microsoft supporter. I'm more into Open Source and Linux or UNIX. I first heard about linux 8 or 9 years ago. At that time we were doing labs on a DOS box telnetting to a Linux server to learn about a database called PostgreSQL. A friend of mine had a 6 CD box containing RedHat, SuSE and Slackware distros. He told me he'd installed it and loved it very much. I decided to take it ...

Biztalk 2004: Mime revisited ...

I had to deploy a flow in production today that has been working fine for 2 months in our test environment. The flow receives a mail from an IIS maildrop folder, gets all attachments and sends them to an orchestration. Mails are in .eml format which is actually a mime message following the RFC2557 specification. Below you can find a sample file that enters Biztalk: From: a@a.com To: b@b.com Subject: hello world Date: Mon, 14 Nov 2005 23:31:17 -0000 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_000_01C5E973.82A5C520" ------_=_NextPart_000_01C5E973.82A5C520 Content-Type: multipart/alternative; boundary= "----_=_NextPart_001_01C5E973.82A5C520" ------_=_NextPart_001_01C5E973.82A5C520 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit hello world, content ------_=_NextPart_001_01C5E973.82A5C520 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: 7bit <HTML> <HEAD...

Linux: Problems with Ubuntu, X and NVidia

When I started my computer the other day, X was not starting. Nothing happened. Just a cold, black screen. I had no idea what triggered this, so I decided to reinstall the NVIDIA driver for my graphics card. All went well and X was working again. After reboot, same problem. After googling for a while, I found this discussion. Seems the Debian's/Ubuntu's own nvidia runlevel scripts are cleaning up modules they shouldn't. So the solution is to uninstall all nvidia stuf you installed from Debian/Ubuntu (with --purge option), reinstall the NVIDIA driver from the official website and switch to runlevel 2 to see the result. Aah, don't you just love if everything falls back into place ;)

Visual Studio .NET 2003: resx files ...

I have a project containing custom pipeline components. Each component has its own .resx -file. For some reason the .resx -file for ComponentA was included in the project as a seperate file and the .resx -file for ComponentB was only visible if you clicked the [+] -sign left of my component. I had no idea why there was a difference between the visualization for both .resx -files. When I edited the .csproj -file, I saw why it happened: <File RelPath = "ComponentB.resx" DependentUpon = "ComponentB.cs" BuildAction = "EmbeddedResource" /> If you remove the DependentUpon property, the file becomes visable in your project. Dunno how to do it without editing the project file though ...

Biztalk 2006 on Linux ... yes, it's possible (2)

Image
So I finally installed the second Biztalk 2006 beta on my Ubuntu Linux box. My machine is a Pavilion 5080.be with 1GB of RAM. I thought running VMWare and Windows 2003 Server would really slow the machine down ... but it didn't. In the above screenshot you can see my first flow (ProcessOrder) I've developed in Biztalk 2006. Let's start doing some more advanced things ;)

Biztalk 2006 on Linux ... yes, it's possible (1)

I'm currently running Ubuntu Hoary on a custom 2.6.13 kernel. I will be using this to run Windows 2003 Server and Biztalk 2006. To be able to run Windows on Linux (Ubuntu), you'll need VMWare . Apparently the most recent version (5) is having problems on kernels later than 2.6.11. The VMWare network modules causes the network to lock up from time to time. You can read all about it and how to solve it here . Right now, I've managed to install 2003 Server, SQL Server 2000, Analysis services and Visual Studio 2005 beta. Later this week, I'll be installing the second Biztalk 2006 beta. Very exciting stuff ...

Excel ... aaaargh ...

I am working for a client that is using a lot of automated B2B scenarios. These include, next to normal EDI (Edifact and X12), ordering by mail. My client’s client sends orders as mail attachments. This has been working for quite some time, until recently, I got a phone call. Apparently, something was wrong in _my_ code because the requested delivery date was wrong by a day. The requested delivery date is, well, quite special. It is an integer indicating the number of days that passed since 01/01/1900. “Why?” you might ask. No idea. But hey, no problem, I can count. So this is the code that was parsing the “number of days passed since 01/01/1900” to a real date:             DateTime baseDate = DateTime.ParseExact("01011900", "ddMMyyyy", null );             int days = int .Parse(numDays);             return baseDate.AddDays(days - 1).ToString("yyyyMMdd"...

Linux: Swap, file systems and such ...

Just found this interesting read on KernelTrap , posted by Mr Z . Allow me to elaborate. UNIX filesystems have a concept of "inodes" that store the body of the file, its permissions and its ownership. The inodes get linked into directories via names--aka. directory entries. The same inode can be linked into the filesystem in multiple places. (Hence the concept of a "hard link.") The filesystem keeps track of how many links an inode has, and the kernel keeps track of how many processes have opened a given inode. This concept is important, and I will come back to it. When an executable runs, the executable's file as well as the files for all the libraries it depends on get opened. The pages for these files get mmap()'d into the process' address space as file-backed virtual memory. The memory gets marked copy-on-write, so that any changes to the mmap()'d code result in a fault, and break the file backing. In any case, the file-backed portions are backed...

Biztalk: Explorer

Just found this nifty tool to manage and configure your Biztalk server running in production. It's called Biztalk Explorer and allows you to configure/manage a Biztalk 2004 without having Visual Studio installed. So this tool is ideal for administrators configuring production/QAS environments. I know you should use binding files, but if you want to change something quickly, this is the tool you need.

Firefox: Figures on MSDN not showing ...

When browsing some articles on Biztalk on the MSDN sites, figures were not showing (e.g.: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/bts_2004wp/html/956fd4cb-aacc-43ee-99b6-f6137a5a2914.asp ) in Firefox. I was wondering why the figures were showing in Internet Exploder and not in Firefox. Seems that Firefox is having problems with the back slashes. Well ... problems ... shouldn't be back slashes in the first place (damn Micro$ofties), right? The solution is to install Slashy . Look mom, I can now read MSDN articles too ;)

Biztalk: Creating documentation

Here are a few possibilities to create your documentation for Biztalk deployments. Generate it with BiztalkDocumenter Create it with VISIO Using the stencil from Enterprise Integration Patterns Using the stencil from André Dammeyer Maybe you came accross some better options ... let me know.

Biztalk: Delete ReceiveLocation using WMI and VBScript

The default samples that are shipped with the Biztalk SDK do not contain code to delete a ReceiveLocation. Here is something I've written that will delete a ReceiveLocation, specified on the command line. Please note that: this is a very-very basic script (e.g. no checks on primary ReceiveLocation) I know nothing about VBScript, so if you want parts of it nominated as a WTF , go ahead, make my day ;) Option Explicit   RemoveRecLoc Sub RemoveRecLoc()     Dim objArgs: Set objArgs = WScript.Arguments       'error handling is done by explicity checking the err object rather than using     'the VB ON ERROR construct, so set to resume next on error.     'on error resume next       Dim strReceiveLocation        strReceiveLocation = objArgs(0)       Dim InstSet, Inst     set InstSet = GetObject ("winmgmts:\root\MicrosoftBizTalkServer")...

Mime Decoder Pipeline Component in Biztalk 2004 (the solution)

I promised to publish a solution to read the .eml files. This solution works for both Biztalk 2004 and Biztalk 2004 SP1 installations. Step 1: Create a custom decoder component You can download a wizard that will create any pipeline component here . Use this to create your decoder component. Make sure you have the following design time properties defined: FromRegex : this will contain the regular expression to find the sender FromMatch : this will contain the index of the Group and Capture ToRegex : this will contain the regular expression to find the receiver ToMatch : this will contain the index of the Group and Capture SubjectRegex : this will contain the regular expression to find the subject SubjectMatch : this will contain the index of the Group and Capture PropertyNamespace : this will contain the namespace of the properties we're promoting (don't forget to create your property schema with MessageContextPropertyBase properties) If you're not familiar with regula...

The Daemon, the GNU and the Penguin (12)

Read all about it here . Very interesting series. I've read to chapter 4 the other night ...

Mime Decoder Pipeline Component in Biztalk 2004

This is so funny. I've been struggling for a while to be able to read .eml files through Biztalk. Seems the the MIME decoder that ships with Biztalk 2004 tries to find "MIME-VERSION" in the first 1024 bytes of the .eml -file. The problem is that, in my file, the MIME-VERSION -string was near byte 1324 (or so). So the decoder tells me the file is not valid. Seems this problem is resolved in SP1. In a next post, I'll post some code ...

Biztalk: RIP

Biztalk died on me today after choking on an 18 MB IDOC (= flat file message from SAP) message. A catastrophic failure occurred in the BizTalk service. The service will shutdown and auto-restart in 1 minute. If the database is still unavailable, this cycle will be repeated. Error message: Parameter is incorrect Error source: System BizTalk host name: BizTalkServerApplication Windows service name: BTSSvc{940AAE5E-0C6F-401E-83B2-D00BFF7792BB} I already ran the Config Framework wizard, but untill now, no joy :(   Update! I found why I was getting the above error. It seems one of the IDOCS I was using for testing lost some trailing spaces in one of its segments. This resulted in the above error ...

Xbox 360

Ok, I must have been away from this world for some time. Apparently Microsoft's new game console will be called Xbox 360. You can read all about it here . A few years ago, when Microsoft released its first Xbox, there was some student analyzing traffic that was crossing the encrypted bus (between CPU and peripherals I think), for its thesis. As a result, different small companies released mod chips that were able to hack this bus. After mod'ing your Xbox, you were able to run copied games (not that I approve that). You could even run Linux on your Xbox. After all, the first Xbox was a normal PC, with some proprietary stuff from Microsoft. When the new Xbox will be released, the OpenSource community will be ready ... I can't wait ;)