Friday, August 18, 2006

Toronto and KW in less than 2 weeks

A quick reminder that I'll be in the Toronto / KW area from September 1st to 18th. Although I posted this a long time ago, people keep asking me so here it is again. Email me your phone nr and I'll do my best to get in touch.

Thursday, August 17, 2006

File not found error when assigning a document schema in a pipeline

I was having a bit of trouble today with Visual Studio that took a good deal of investigating to figure out so I thought I'd drop a note here. I was building a simple BizTalk receive pipeline that used the default XmlDisassembler and I wanted to add a document schema as well as an envelope schema to the disassembler. When I clicked on the ellipsis button (the three dots) I got a popup from Visual Studio saying "File not found" and some other stuff with an HRESULT= *********. I'd put the error down but I can't reproduce it now. I thought something was wrong with my Visual Studio install but it turns out one of the dlls that my custom schemas are defined in, was missing from the bin folder of the project. Since I have the reference set to 'copy local =true' it didn't matter that I had the dll in the bin folder of the source project. It took me FileMon to figure this one out. Thanks VS for the insightful message.

Wednesday, August 16, 2006

BizTalk, SQL linked servers and DTC

Recently a colleague of mine and I spent a significant amount of time trying to use the SQL Adapter wizard in BizTalk 2006 to generate schemas corresponding to views in SQL 2005 that were really views on data that exists in a Oracle database seen in SQL as a linked server. Ok, that's a mouthful so let me chop that up a bit.

1) Oracle database has data in table A
2) SQL 2005 has a linked server defined which points to the Oracle database.
3) View VA in SQL 2005 uses OPENQUERY to get data from Oracle table A
4) Stored Procedure SPA does a select * from VA
5) BizTalk SQL Adapter Wizard in Visual Studio 2005 tries to create a schema for data coming from SPA.
6) BizTalk SQL Adapter Wizard returns back error saying 'Failed to execute SQL Statement. Please ensure that the supplied syntax is correct.'

Now I have seen this error message before, and if you look back a few posts you'll see that there are some keywords (for xml auto, xmldata) that need to be placed at the end of a stored proc for the wizard to work. This wasn't the problem.

After many days of hunting things down, we realized that our problem lay in the DTC settings between the SQL server and the Oracle server. We could run the wizard against local SQL tables just fine, but the linked stuff would fail. Using the SQL profiler helped here as well, since we could see a much better error message than the one stated above. We then tried to turn off DTC between our SQL box and the oracle box, but this didn't seem to be helping. Actually it wasn't working is what we realized. It seems that you can't turn off DTC if you are using the MS OLE DB provider for Oracle.

Our solution ended ended up being the installation of the Oracle OLE DB provider for Oracle (ie the one downloaded from and then turning off the DTC on that. This magic is achieved by dropping DistribTX=0 in the provider string for the linked server. Now we can use the wizard to our heart's content.

There are plenty of gotchyas to deal with when setting up this scenario but most are well documented. This one wasn't so enjoy.

How lame is this:

Since I have started working as an independent contractor in the IT business I have been contacted many times by various companies and recruiters. The primary channel of communication is the phone with email coming in a close second. Today was the first time I got an SMS from a recruiter. This is not someone I have been in touch with before. I feel that SMS is not a communication medium suitable for initiating business contact. I just can't see the 160 characters of unformatted text being a good way to introduce yourself. As a result, this particular recruiter gets a big thumbs down.

Friday, August 11, 2006

Sql 2005 Web Services are driving me nuts

Today I have been trying to coax Sql 2005 to do something that I think is fairly reasonable. It seems to disagree. Sql 2005 has the ability to expose stored procs as web services. Cool. This means that I can consume the web service in BizTalk (for certain reasons I can't use the SQL adapter). So far so good. Let's look at the schema that BizTalk generates from the WSDL.
This is where things go terribly wrong for me. The schema tells me that sql returns one element, and digging into the WSDL tells me that it's of type SqlRowSet. This sucks since I can't exaclty fire up a new mapper in BizTalk and start creating records. What I wonder is how are people who are not from the .NET world supposed to make use of these Web Services? When I'm not doing BizTalk I write code in .NET so I'd be fine with this, but do all languages know what a SqlRowSet is?

I know there are ways to customize the WSDL that sql returns but this requires code. My client has a no in-house code policy so this is not an option. If I find a way to get sql to spit out a wsdl that is a bit more informative, I'll post an update. For now I'm stuck.

Thursday, August 10, 2006

This is a new one...

I got an amusing error message in the event log on one of my development servers today. Have a look for yourself. I swear I did not photoshop this together, I just added the red box and removed the computer name.

Surprise from Lenovo

This is interesting, I truly didn't suspect that Lenovo folks would read my blog. (See comment two posts back.)

I have to say that I've made my intial call to customer support and so far the experience has been fine. I was a little disappointed to learn that Lenovo can't fix a ThinkPad in the Netherlands but has to ship it to the UK thus adding a few days to the return time. I'm not sure why there isn't a repair center here in the Netherlands since I see folks with ThinkPads all the time and know there has to be enough work to keep at least one guy busy.

I now have to find time to get to a post office so I can send my laptop to a TNT distribution center in Amsterdam that then sends it on to the UK. Since the post office is open durring business hours and I work at a place that also operates durring business hours, I think I'll have to wait until Saturday to send my PC in. I'm really looking forward to mailing my $3000 computer. I'll have to package that sucker well. Let's see where this goes.

Miro's Blog

Looks like my brother decided to start blogging. See for more.

Wednesday, August 09, 2006

Preparing for war with Lenovo customer support

Yesterday my Thinkpad T43p started to act up. The display looked like someone gave the videocard a bad calculator. Nothing seemed to be missing from the screen, but things were certainly not in the right places. It had done this a little bit once before, but a re-boot fixed it. This time however, I did a number of re-boots and still same or worse. I realized it's not a driver issue when I pulled the hard drive out and saw that the very first splash screen was all screwed up. 'Pixels on vacation' is what I'd call it if it were art. The shitty thing is that I don't know how to reproduce the error. I have tried this morning but can't get the thing to screw up. I can just see what will happen if I send it off to cusstomer support: "Sir, there is nothing wrong with this PC." Still, I need my laptop to be reliable and so I am preparing my strategy for a drawn out cold war with the customer support guys at Lenovo. I am hoping they are as nice as Dell, but I expect this is not the case. This is their chance to prove me wrong.

Tuesday, August 08, 2006

Livin it up in the Hague

I found a temporary home in the Hague. I decided to go somewhere between the two options I listed before, it's neither a student dorm nor a place of my own. I found someone who has a very nice apartment but needs a room-mate to help pay the rent. Here's the kicker tho: My room-mate / land-lord is a chick. This is something new for me, and I've seen it backfire big time with some of my friends. It's only for a few months so I figured I'd give it a shot. I'll keep you posted.

I haven't had much time to check out the city yet, I've been trying to hunt down a new bed. I know what I want but I don't want to wait 6 to 8 weeks for it. When the guy at the store told me that's how long it takes for them to get the matress (that's right - just the matress) I almost burst out "Are you fucking kidding?". I mean : ARE YOU FUCKING KIDDING? I think I could make a matress in that time. Some places have some stuff in stock, but usually it's the cheap shit. The hunt is on.

Thursday, August 03, 2006

BizTalk2006.Assembly.Deploy MsBuild Task

Today I realized how useful documentation is. I'm writing an MsBuild script to do an automated build and deploy of our BizTalk 2006 solution and I am using the Microsoft Services (UK) Enterprise Solutions Build Framework (SBF)

I had successfully deployed assemblies into BizTalk using the BizTalk2006.Assembly.Deploy class, but only into the defualt BizTalk application. I could not deploy my assemblies into a non-default application. I thought binding files may help, but they didn't. So as a last resort, I fired up the .NET reflector and had a look at the class I was using.

It turns out that the MsBuild task takes an Application attribute. Simple as that. It's just not in the documentation.

Tuesday, August 01, 2006

Small world

I had a really neat experience today. I was waiting at the front desk at work this morning and I see a girl walk into the building whom I thought I recognized. I call out her name, she looks at me and has a priceless look of "WTF?" on her face. I hadn't seen her since highschool and the chances of us working in the same building are pretty slim. Had lucnh with her and caught up a little, noodle salad*. It did remind me of how fast time flies. It's been 9 years since highschool. Damn that flew by.

* Inside joke