Tuesday, 01 July 2008

Hi everyone!

A couple of hours ago, I received a mail from Microsoft stating, that I have been awarded the MVP title!

I cannot begin to describe, how happy I am with this, since I made it a personal goal of mine a couple of years ago, to get the title back. I had it from July 2004 to July 2005, as some of you know.

I have even danced a little bit in our living room with my hands above my head, I must confess :-)

I truly am happy to get the title back, since it means that Microsoft values my skills within the BizTalk field and that I must have helped a lot of people in the online communities.

To learn more about the MVP program, you can click here.


Tuesday, 01 July 2008 22:03:41 (Romance Daylight Time, UTC+02:00)  #    Comments [1]  | 
Sunday, 04 May 2008

Hi everyone.

I have just upgraded the software on my blog to dasBlog version 1.9.7174.1.

I hope it has been smooth for you all, and if you notie any difficulties, please let me know.

Later, I will upgarde to dasBlog 2.0, which has been out forquite some time, but one step at the time, ight? :-)


Sunday, 04 May 2008 21:24:39 (Romance Daylight Time, UTC+02:00)  #    Comments [0]  | 
Tuesday, 18 March 2008
Hi everyone

Well, after 7 months at thy:data it seemed clear to me, that thy:data wasn't the place I wanted to work. Luckily at the same time, my old employer WM-data, that has changed its name to Logica, was searching for someone exactly with my skills. So it didn't take long for us to reach an agreement, and therefore, on the 1'st April, I am starting at Logica.

I am really looking forward to this - I will be going back to all my old colleagues, and my assignments will vary much, going from presale, writing quotes and promoting Logica to Microsoft to actual design and development of large integration projects, based on BizTalk, .NET3.0 and stuff.

Just 2 weeks to go...


Tuesday, 18 March 2008 21:00:31 (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
Sunday, 24 February 2008


Finally(!) I found time (Well, I should probably have done something else...) to review the design of my eliasen.dk homepage. It was awful, black and very much outdated.

The new design is better, updated, brighter, happier, implemented in .NET and much more :-)

If you have comments about it, feel free to send them to me.


Sunday, 24 February 2008 02:58:32 (Romance Standard Time, UTC+01:00)  #    Comments [3]  | 
Sunday, 06 January 2008


Well, the time has come for me to start running again.

11 years ago (when I was a soldier), I was quite the runner. My best times are 5 km in 17:30 and half a marathon (21,0975 km) in 1:32:46.

Since then, the weight has come up, as the amount of exercise went down :-).

Anyway, I have lost about 7kg in the last 3-4 months, and now was the time to start running again... and today was the first time.

A local fitness center had an offer for new members, that I have taken, so not only did I run today for the first time in a very long time, I also did it on a running machine. That took some getting used to! :-) I managed to get the damn machine running, but then it stopped... then I started it again... and then it stopped. Probably next time I will get some help figuring out how to set the machine appropriately. The run itself went fairly well... around 7km. I will have to bring some music the next time, though.

It felt pretty weird, that I did some interval training, where the maximum speed (16 km/h) was just about the same speed as I ran for an hour without breaks in my earlier years (15 km/h) :-)

So, any goals, Jan? Yes, off course. I have a couple;

  1. I would like my average time to run 1 km to be about 4 minutes.
  2. At "Limfjordsløbet" (14 km) at the end of May (2008 :-) ), I want to run faster than a friend of mine called Tom. Also, running faster than my old boss Anne would be nice :-). 4 minutes per kilometer would take care of both :-)
  3. At some point, I want to run a marathon. I will wait a couple of months to set any specific dates, times, etc. for this one, since I am really in no shape to guess right now :-)

My legs are fine, I believe.. but perhaps tomorrow I will edit that part out of this blog post :-)

The plan now is to run every Tuesday, Thursday and Sunday on average.. sometimes it will be Wednesday instead of Tuesday and so on.

Wish me luck...


Sunday, 06 January 2008 22:27:35 (Romance Standard Time, UTC+01:00)  #    Comments [2]  | 
Wednesday, 12 December 2007


People sometimes ask, what is the difference between catching System.Exception and the General Exception in a Catch Exception shape in the orchestration designer in BizTalk.

Off course, an obvious difference is, that with the General Exception, you don't get an object with properties to investigate. But then it seems that the General Exception is useless... surely there is a point to it?

Well, I was curious about this myself, so I investigated a bit, and found this post. So basically, I think the catch of the general exception in BizTalk 2006 is a left over from BizTalk 2004. In BizTalk 2004 it made sense, since you actually have exceptions thrown at you that didn't derive from System.Exception. That is no longer possible in .NET 2.0 - they just haven't removed it from the designer - probably just to be backwards compatible.

That's it...


Wednesday, 12 December 2007 19:53:15 (Romance Standard Time, UTC+01:00)  #    Comments [4]  | 

Hi everyone

Right now I am attending the Quicklearn BizTalk 2006 R2 Deep Dive course. I have taken their BizTalk 2004 deep dive and 2006 deep dive earlier, and now the time has come to the R2 one.

The last two times I was taught by John Callaway, and this time it is Alan Smith.

Basically, if you feel like taking a BizTalk course, that goes deeper than the normal courses, I highly recommend the quicklean course.


Wednesday, 12 December 2007 19:02:21 (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 
Thursday, 22 November 2007


Inspired by my post some weeks ago about me mending a fuse on our car, I really have outdone myself this time.

First of all, I have changed a light bulbe on my parents car.

Secondly, I have exchanged the dripping faucet in our kitchen for a brand new none-dripping one. It was actually quite a mess, and after a couple of trial-and-errors, I got it working. So now we have a new faucet in the kitchen - it doesn't drip, and I made the switch!



Thursday, 22 November 2007 00:37:43 (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 


Recently, I ran into a peculiar problem, which really had me fooled a long time.

Basically, I had a BizTalk Server 2006 R2 solution running. It consisted of 10 assemblies. One of the orchestrations in each of 9 of the assemblies was exposed as a web service, all using complex types - no strings, ints and so on.

And then there was the system, that was to call my web services. I had no saying over that system. We started calling the first web service. Everything went ok. Then they implemented code to call the second web service, everything OK... all was well (except some minor things here and there) for the first eight web services.

But at the ninth web service, strange things started to happen.

Basically, the other system would call my web service, IIS would return http 200 OK, but still, no data came into BizTalk. I had NOTHING in group hub page, nothing in HAT, nothing in the eventlog, NOTHING! IIS log said: I received a post on this url and responded with 200 OK - that's it - nothing more.

Really weird - I mean... where did the XML go? Why were there no errors? So we installed YATT, which is an http sniffer tool, that would be able to tell us what was exatly sent across the wires. Basically, what we found out was, that allthough the sender might have send 13000 bytes, the sniffer only reported maybe 10500 bytes. So we started investigating the network. The two servers were on the same subnet, one hop away from eachother. So no servers on the route could mingle with the traffic.

I decided that I would write my own little C# test program, that would call the web service and see if that failed as well. It didn't. I ended up calling the web service succesfully with more than 100k (I didn't bother to try anything higher than that.)

But it turned out, that the sniffer must have a bug - it reported all sorts of different numbers, when using my test program, and none were correct. Apparently, it wasn't created to handle large packets, but just a few kilobytes. So we installed wireshark instead (get it from sourceforge). Now THAT is a nice tool! Totally professional (and free), and it showed us everything that came in and out - no limitations.

So we did a test with my tool, and a test with the other system, and tried comparing the http headers, the soap action, and so on. It turned out, that all the other web services, when called by the other system, returned http 202 Accept and not http 200 OK. And when my test program called the web service, it got the http 202 Accept.

We ended up discovering what the issue was. The other system (programmed in .NET) wasn't calling my web services the "right way". They were sending everything using httprequests. Now, this is a perfectly legal way of doing it, but it really requires that you know what you are doing. I mean: They added a header to the httprequest for the SOAPAction, and then they built up XML with the soap envelope, soap body, elements for the web method and inside that the actual XML. This was just a string that they sent using httprequest.

The answer ended up being that the XML that the other system was sending me had invalid data in elements of type xsd:date. So basically, the XML couldn't be deserialized into the object that my web method on the web service was expecting. Therefore, the web method was never called, and therefore there was no data in biztalks log, the eventlog or anywhere else.

So, I have learned two things from this:

1. You should always accept the help your programming environment gives you. If the programmer of the other system had added a web reference to the web service and built XML and deserialized it into the object that was the parameter, he would have gotten an exception at runtime, that he could debug. The way he did it meant that we got NO errors at all - the data just disappeared (which I think .NET shouldn't do. Some sort of warning somewhere would have been nice.)

2. When debugging, don't trust the tools you download you to help debugging :-)

I hope this can help someone.


Thursday, 22 November 2007 00:34:20 (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 


I am currently supporting an existing BizTalk 2004 environment, and came across the need to debug an orchestration in the production environment. Yes, I know - "Not in the production environment", you scream... but yes, indeed - in the production environment.

Anyway, I set some breakpoints, waited for the orchestration to hit the breakpoint and tried to attach to the orchestration. I got this error:

Debugging user validation against group '<servername>\BizTalk Server Administrators' failed with error: Debuging Client is not a BizTalk Server Administrator.

This seemed odd, so I investigated a bit further. It turns out, that the setup is a multiple server setup, ie. one server for SQL Server and one for BizTalk 2004. Also, it tunrs out, that the gyuy who installed the servers didn't use domain groups. The services were running under domain accounts, but the BizTalk groups were created on both machines. Not a supported setup, but I am hoping they will upgrade to BizTalk 2006 R2 before long, and therefore, we are not going to touch that.

Anyway, it turns out, that the user I was logged in as was a member of the "BizTalk Server Administrators" group - but only on the BizTalk Server. Once I added him to the same group on the SQL Server server, all was fine.

I googled the error, and didn't stumble upon an answer, so I just thought I'd blog about it in case anyone has the need for the answer some day :-)


Thursday, 22 November 2007 00:11:37 (Romance Standard Time, UTC+01:00)  #    Comments [0]  | 

Theme design by Jelle Druyts