Posts

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 ;)

The Daemon, the GNU and the Penguin

For those of you interested in the history of Unix, OS2, Minix, Linux ... (or in short those decent OSes that don't originate from Redmond) there's a series of tales you can read on Groklaw. The latest is chapter 9 .

Where did my functoids go ...

Ok, yet another Biztalk post. The other night, I was working for a client, trying to get a map right. Normally I don't use these things. I know XSLT well and tend to use this instead of the clumsy Biztalk Mapper . This time, however, I was obliged to use the mapper. My colleague was using it and I had to fix his map. Anyway, opening the toolbox startled me, as there were no functoids. After Googling for a while, it seemed I had to add Microsoft.BizTalk.BaseFunctoids.dll (which you can find near C:\Program Files\Microsoft BizTalk Server 2004\Developer Tools ) to my toolbox. After that, everything was working as it should. I'm not sure how MS Visual Studio ever forgot about the location of my functoids ...

Star Wars Episode III: Revenge of the sith ...

Ok, I admit it, I'm a nerd ;) This morning, at 00h10, I went to see the final part of the Star Wars saga. Better than the first 2, I must admit. Even though you know how it's going to end (you do know how it's going to end ... if not, were have you been the past 6 years or so), Lucas managed to bring enough entertainment, drama and suspension to keep me awake for almost 3 hours. So in short, a must see ... may the force be with you ...

Duplicate message types part II

In a recent post I was talking about duplicate message types deployed to the Biztalk management database. The following link describes duplicate message types in more detail.

Long classpaths in Java

Yesterday, a colleague had a problem setting the classpath for an application we use. Apparently, the length of environment variables is restricted in Win32. Unfortunately our application is using a lot of external jars , so classpaths tend to grow. While google'ing for a solution I came accross this post. There is another solution to solve this issue. Just add the following line to your config.sys file: shell=command.com /e:4096 I must admit, I like the Runner.class solution though ;)

GAC and M$ Visual Studio .NOT

A colleague of mine was having trouble adding references to C# projects, of DLL's that are in the GAC. Apparently, M$ nows about this issue: http://support.microsoft.com/default.aspx?scid=kb;en-us;306149 I really love the last part: It is highly recommended that you not install your assemblies to the GAC, unless you want to share your assemblies with other applications running on that system. Also, note that it is not possible to directly reference an assembly from the GAC in your project. If you want to use an assembly from the GAC, you should drop your assemblies to a local folder, and then add a reference to the assembly from this folder.