Friday, August 23, 2013

biztalk mapper bug

In Visual Studio 2010, I used the script functoid to write some C# method. Then I write the code in an assembly and changed the functoid to get the assembly code. Then I generate the xslt. The code is still in the xslt and the xsl is calling the script code, not the method in the assembly. You have to delete the code from the textbox to make the code go away.

Friday, May 18, 2012

A big gotcha

I installed the "Microsoft Biztalk 2010 Accelerator for SWIFT" (A4SWIFT) and the "Microsoft Biztalk Accelerator for SWIFT 2010 Message Pack" on my computer. In my work I need to research the SWIFT schemas and such. I was trying to open up the SWIFT header schema that is inside the Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas assembly. However I keep getting this error: Could not load type 'Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas.HeaderSchema' from assembly 'Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35'. The problem is that there are two assemblies with the same file name and version number! The one creating the error is from A4SWIFT. The correct one is in the message pack directory. Note that the namespace name has different: A4SWIFT: Microsoft.Solutions.FinancialServices.SWIFT.RuntimeSchemas.HeaderSchema A4SWIFT Message Pack: SWIFTSchemas.SWIFTHeader Confusing as hell. No idea why they left an obsolete assembly around.

Monday, August 08, 2011

using Biztalk script functoid

I have been trying to use Biztalk maps to create xsl transforms. The biggest challenge seems to be finding resources that talk about its capabilities and limitations. Here is my little contribution.

My transform involves a lot of repeating structures. In particiular a bunch of addresses attached to different entities that needs to be mapped to another address structure.





In some cases the address entries are blanks but the destination does not allow blanks so the nodes have to be skipped.

Most of these tasks can be done with various functoids. But if you have to repeat a good few times the biztalk map gets hairy.

So my solution is to use the scripting functoid and write an xslt template. Luckily every has an id so I can use that as a parameter. The other parameter would be the node (a, b, c, or d) so that I can construct the xpath inside my template. Then it's normal xsl stuff and you can control your output.

I can construct an example if there is interest.

Friday, January 21, 2011

Questions and issues with Home systems using RAID

I bought a new home computer a few months ago. For the past few weeks I was trying to set up a RAID-1 array at home and ran into a bunch of issues and questions. The Motherboard is an ASUS M4A88TD-V which has a RAID support on the motherboard via a SB850 chipset.

  • There is no way to create a RAID volume from an existing disk. You have to create a new volume from scratch and re-image.

  • There seem to be a need to special drivers. When I boot up Linux with the RAID volume defined it still shows 2 disks!

  • Does the controller (or controlling software) verifies the write? If it doesn't and an error is discovered at read time it is too late.

  • If you have a corrupted file due to a software glitch for example you still need a backup. Otherwise you have a mirror of corrupted files.

  • If the motherboard dies can we take the disks and boot up from another computer with potentially a different chipset - RAID or regular?

Due to the above questions and issues I ended up using the secondary disk for backups.

Tuesday, October 19, 2010

kernel panic - unable to mount root fs

I have a Ubuntu 10.04 desktop and one day it just refuses booting up. Here are my steps to get it going again. Please drop a comment if it helped you.

- press escape when grub is load. Choose "recovery mode" to see where in the boot process it failed. In this case it is trying to mount root and failed.
- rebooted the computer from the bootable CDrom. Chose "fix a harddisk"
- once the initial setup is completed, try to mount the harddisk as root. For me it worked.

At this point I have 3 suspects:
- grub is corrupt. I tried reinstalling grub from the CDrom and that didn't help. Moreover I have been able to change options, tried older kernels, so not likely.
- blkid or device id somehow changed. I double checked the blkid values and devices with both the grub menu and /etc/fstab and they haven't changed.
- it took a while for me but I finally did a ls -l on /boot. All the files except one was dated one day before the failure. It was also odd that there was no backup (.bak) of the file. The file was initrd-xxx. I couldn't find the documentation on how to roll back the file, so I grabbed the same file from another Ubuntu box, copied it over. Rebooted and it started working again.

I googled a lot during this process and there was nothing really helpful. My suspicion is that there was a kernel update and somewhere in the middle of the process it failed.

Thursday, October 14, 2010

Powershell set-ClusterParameter

Powershell is wonderful. That being said there are still dark corners you have to traverse through.

I need to create a Powershell script to create a MSMQ resource on a failover cluster. One of the things I need is to set the IP address using DHCP. Using the UI interface is simple, select the network, click DHCP enabled, click apply. You would think you can do the same thing in Powershell, but it has to work like this:

$clusterGroup = Add-ClusterGroup -InputObject $cluster -Name "MsmqCluster"

# create cluster IP address
$IPClusterResource = add-ClusterResource -InputObject $ClusterGroup -Name "${clusterGroup}-IP" -ResourceType "IP Address"

# find the network name
$ClusterParam = get-ClusterResource "Cluster IP Address"|get-ClusterParameter Network
$NetworkName = new-object Microsoft.FailoverClusters.Powershell.ClusterParameter $IPClusterResource,Network,$ClusterParam.Value
# have to fake an ipaddress and subnet mask
$address = new-object Microsoft.FailoverClusters.Powershell.ClusterParameter $IPClusterResource,address,""
$subnetmask = new-object Microsoft.FailoverClusters.Powershell.ClusterParameter $IPClusterResource,subnetmask,""

# have to bundle the parameters together and set the parameters in one shot
$setParams = $NetworkName,$address,$subnetmask

# now you have to enable NetBIOS before you can Enable Dhcp
set-ClusterParameter -inputObject $IPClusterResource -Name EnableNetBIOS -Value 1
set-ClusterParameter -inputObject $IPClusterResource -Name EnableDhcp -Value 1

Tuesday, September 21, 2010

longest run up

My friend is doing this crazy thing. Please support him.
Listed on BlogShares